我有一个看起来像这样的字段
1,13,15
如果我尝试进行搜索以查找包含“1”的所有行,那么它将获取所有内部为1的行,而不仅是表示1,[something]的行,还包括“11”,“13 “等等。
我尝试过类似的声明和通配符,但没有运气。
答案 0 :(得分:3)
如果您使用的是MySQL,请使用FIND_IN_SET
,而不是LIKE
。
WHERE FIND_IN_SET('1', columnname)
但最好的解决方案是规范化您的架构,以便在列中没有逗号分隔值。
答案 1 :(得分:1)
如果您使用的是MySQL,可以使用regexp
来检查这些值
where column_name regexp '^1,|,1,|,1$|^1$'
答案 2 :(得分:1)
当你说" 1 *"它找到了那之后有一个和任何东西的东西。只需缩小搜索范围并搜索:
field LIKE "1,%" OR field LIKE "%,1,%" OR field LIKE "%,1" OR field = "1"
答案 3 :(得分:0)
您可以搜索" 1,"或" 1"或",1"。
答案 4 :(得分:0)
如果您的字段为'1,13,15'
,请将其更改为',1,13,15,'
以及您对LIKE '%,1,%'
的搜索
因此,根据您的数据库,您应该尝试这样的事情
SELECT *
FROM yourTable
WHERE ',' + yourField + ',' LIKE '%,' + @search + ',%'
答案 5 :(得分:0)
你试过了吗?
select rows
from table
where field contains '1,'
答案 6 :(得分:0)
如果您正在使用MS SQL Server,则应使用LIKE '%1%'
。