有没有一种很好的方法可以将正则表达式转换为函数内的LIKE(MSSQL)?sproc并没有比这更复杂:
(country\=)(?<Country>[\w\d]+)(\&sessionid\=)(?<SessionId>.+)
Run Code Online (Sandbox Code Playgroud)
这些组不会用在LIKE中,它们用于其他目的.
我想在一个sproc里面使用这个像:
SELECT * FROM [Table]
WHERE test_regex(regex, 'text') = 1
Run Code Online (Sandbox Code Playgroud)
正则表达式是[表]的一部分
我想运行这样的查询:
SELECT * FROM table WHERE field LIKE '%search_term%'
Run Code Online (Sandbox Code Playgroud)
在CI中,您可以将参数绑定到查询,如果您使用field=?但这不起作用field LIKE "%?%".从调试输出看来,使用的查询似乎是field LIKE "%'search'%".
有没有其他方法可以在CodeIgniter中进行搜索?
1)这找到狗的日本标志(犬):
SELECT japanese
FROM edict
WHERE english LIKE 'dog'
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
2)这会找到所有带有"狗"(犬)标志的日语单词:
SELECT japanese
FROM edict
WHERE japanese LIKE '%?%';
Run Code Online (Sandbox Code Playgroud)
3)我将这两者合二为一,因为这不起作用?!
SELECT japanese
FROM edict
WHERE japanese
LIKE CONCAT('%',
SELECT japanese FROM edict WHERE english LIKE 'dog' LIMIT 1,'%'
);
Run Code Online (Sandbox Code Playgroud) 鉴于您的数据存储在数据库中的某个位置:
Hello my name is Tom I like dinosaurs to talk about SQL.
SQL is amazing. I really like SQL.
Run Code Online (Sandbox Code Playgroud)
我们希望实施网站搜索,允许访问者输入条款并返回相关记录.用户可能会搜索:
Dinosaurs
Run Code Online (Sandbox Code Playgroud)
和SQL:
WHERE articleBody LIKE '%Dinosaurs%'
Run Code Online (Sandbox Code Playgroud)
通过返回正确的记录集来处理问题.
但是,如果用户误入恐龙,我们将如何应对?IE:
Dinosores
Run Code Online (Sandbox Code Playgroud)
(可怜的痛苦迪诺).我们如何搜索允许拼写错误?我们可以将我们在搜索中看到的常见拼写错误与正确的拼写相关联,然后搜索原始字词+更正后的字词,但维护时间很长.
有什么办法编程吗?
编辑
出现SOUNDEX可能有所帮助,但任何人都可以使用soundex给我一个输入搜索词的例子:
Dinosores wrocks
Run Code Online (Sandbox Code Playgroud)
返回记录而不是做:
WHERE articleBody LIKE '%Dinosaurs%' OR articleBody LIKE '%Wrocks%'
Run Code Online (Sandbox Code Playgroud)
谁会回来squadoosh?
试图找出测试VARCHAR列值是否以回车符结束的正确方法.试过这个,但它不起作用,数据库是Oracle 11g......
select name from myTable where name LIKE '%\r' OR name like '%\n'
Run Code Online (Sandbox Code Playgroud) 我试图在mysql语句中使用LIKE子句,如下所示:
SELECT * FROM batches WHERE FilePath LIKE '%Parker_Apple_Ben_20-10-1956%'
Run Code Online (Sandbox Code Playgroud)
"FilePath"列中的数据匹配数据是:
C:\SCAN\Parker_Apple_Ben_20-10-1830\TEST
Run Code Online (Sandbox Code Playgroud)
上面的SQL语句工作正常并且获取了相关的行,但是如果我例如在LIKE子句的末尾添加"\"字符(如下所示),它就不会正确地获取行:
SELECT * FROM batches WHERE FilePath LIKE '%Parker_Apple_Ben_20-10-1956\%'
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我在LIKE子句的开头放置一个'\'字符(如下所示),那么它就完全没法了 - 这让我感到困惑.
SELECT * FROM batches WHERE FilePath LIKE '%\Parker_Apple_Ben_20-10-1956%'
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个搜索功能.
如果搜索输入字段是"foo bar",我将其拆分为两个关键字然后执行此查询:
SELECT p.* FROM p_extra_fields as x INNER JOIN products as p ON x.product = p.id
WHERE x.type = "1"
AND
(
(x.key = "model" AND x.value LIKE "%foo%")
OR (x.key = "model" AND x.value LIKE "%bar%")
OR (x.key = "color" AND x.value LIKE "%foo%")
OR (x.key = "color" AND x.value LIKE "%bar%")
OR (x.key = "make" AND x.value LIKE "%foo%")
OR (x.key = "make" AND x.value LIKE "%bar%")
)
GROUP BY x.product LIMIT 0, 50
Run Code Online (Sandbox Code Playgroud)
关键字的数量可能更高,因此我可能需要更多"喜欢"."钥匙"的数量也可以增加:)
有什么办法可以简化这个查询吗?我能做点什么 …
我正在使用节点js和模块pg连接到postrgresql我想搜索一个标签数据库,但我无法使它工作,在变量标签中我保存了网址的参数,但咨询没有t返回任何结果.我该怎么办?
app.get("/tags", function(req, res){
var tag = req.query.q;
res.json(tag)
var search = db.client.query("SELECT * FROM tags WHERE name LIKE '%$1%'", [tag], function(err, result){
res.json(result);
}
);
});
Run Code Online (Sandbox Code Playgroud) 例如:x => x.Name ="g"
我有这样的代码块
public Expression<Func<TEntity, bool>> SearchExpression()
{
var c = new ConstantExpression[_paramList.Count];
var b = new BinaryExpression[_paramList.Count];
BinaryExpression comparisonExpression = null;
var entity = Expression.Parameter(typeof(TEntity));
for (int i = 0; i < _paramList.Count; i++)
{
var value = Convert.ChangeType(_paramList[i].Item2 /*"g"*/, _paramList[i].Item3 /*System.String*/);
c[i] = Expression.Constant(value); //"g"
// PROBLEM IS HERE
b[i] = Expression.Equal(Expression.Property(entity, _paramList[i].Item1 /*Name*/, c[i]);
// PROBLEM IS HERE
}
_paramList.Clear();
comparisonExpression = b.Aggregate(Expression.And);
return Expression.Lambda<Func<TEntity, bool>>(comparisonExpression, entity);
}
Run Code Online (Sandbox Code Playgroud)
像魅力一样工作,但我需要Expression.Like (喜欢"g"不等于"g")
Expression.Like(Expression.Property(entity, _paramList[i].Item1), c[i])
Run Code Online (Sandbox Code Playgroud)
但是C#表达式树不支持Like方法 …
我无法弄清楚我是如何处理这个问题的:
这是我的数据:
Table1: Table2:
BRAND PRODUCT SOLD
Sony Sony ABCD 1233
Apple Sony adv 1233
Google Sony aaaa 1233
IBM Apple 123 1233
etc. Apple 345 1233
IBM 13123 1233
Run Code Online (Sandbox Code Playgroud)
是否有可能过滤查询,我有一个表格的品牌和销售总额?我的想法是:
Select table1.brand, sum(table2.sold) from table1
join table2
on (table1.brand LIKE '%table2.product%')
group by table.1.brand
Run Code Online (Sandbox Code Playgroud)
这是我的想法,但我总是得到一个错误
最大的问题是Like-Operator还是有其他解决方案吗?
sql-like ×10
sql ×4
mysql ×3
c# ×1
codeigniter ×1
comparison ×1
function ×1
hadoop ×1
hive ×1
hiveql ×1
node.js ×1
oracle ×1
postgresql ×1
regex ×1
search ×1
select ×1
spelling ×1
sql-server ×1
sqlite ×1