web*_*ers 131 mysql sql sql-like
我有这个MySQL查询.
我有这个内容的数据库字段
sports,shopping,pool,pc,games
shopping,pool,pc,games
sports,pub,swimming, pool, pc, games
Run Code Online (Sandbox Code Playgroud)
为什么这样的查询不起作用?我需要运动或酒吧或两者的田地?
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
Run Code Online (Sandbox Code Playgroud)
jaz*_*kat 289
更快的方式:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Run Code Online (Sandbox Code Playgroud)
这是:
WHERE interests REGEXP 'sports|pub'
Run Code Online (Sandbox Code Playgroud)
在这里找到这个解决方案:http://forums.mysql.com/read.php?10,392332,392950#msg-392950
有关REGEXP的更多信息,请访问:http://www.tutorialspoint.com/mysql/mysql-regexps.htm
And*_*mar 121
该(a,b,c)列表仅适用于in.因为like,你必须使用or:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Run Code Online (Sandbox Code Playgroud)
Ahm*_*ain 34
你为什么不试试REGEXP.试试这样:
SELECT * FROM table WHERE interests REGEXP 'sports|pub'
Run Code Online (Sandbox Code Playgroud)
iam*_*h15 10
你也可以使用RLIKE.
例如:
SELECT * FROM TABLE_NAME WHERE COLNAME RLIKE 'REGEX1|REGEX2|REGEX3'
Run Code Online (Sandbox Code Playgroud)
你的查询应该是 SELECT * FROM `table` WHERE find_in_set(interests, "sports,pub")>0
我的理解是你将兴趣存储在桌子的一个区域,这是一种误解.你应该肯定有一个"兴趣"表.
或者,如果您只需要匹配单词的开头:
WHERE interests LIKE 'sports%' OR interests LIKE 'pub%'
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式插入符匹配:
WHERE interests REGEXP '^sports|^pub'
Run Code Online (Sandbox Code Playgroud)
https://www.regular-expressions.info/anchors.html
小智 5
如果在AND参数后使用此函数,请不要忘记使用括号
像这样:
WHERE id=123 and(interests LIKE '%sports%' OR interests LIKE '%pub%')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
266093 次 |
| 最近记录: |