我有一个包含餐厅信息的mySQL表。该信息的一部分是用逗号分隔的数字列表,该数字列表对应于餐厅提供的美食类型。我在从数据库中获取正确的信息时遇到了一些问题。桌子看起来像
id businessName cuisine_id
1 Pizza Place 2,3,4,
2 Burger Place 12,13,14,
Run Code Online (Sandbox Code Playgroud)
我想出了
SELECT * FROM restaurant WHERE cuisine_id LIKE "%2,%"
Run Code Online (Sandbox Code Playgroud)
但这给我带来了一个问题,即它与“ 2”,“ 12”和“ 22”匹配。
我也试过
SELECT * FROM restaurant WHERE cuisine_id LIKE "[^0-9]2,%"
Run Code Online (Sandbox Code Playgroud)
但是那什么也没返回。
有关如何编写此表达式的任何建议?
使用 regexp
SELECT * FROM restaurant WHERE cuisine_id REGEXP "(^|,)2,"
Run Code Online (Sandbox Code Playgroud)
对于num完全匹配,
SELECT * FROM restaurant WHERE cuisine_id regexp "(^|,)2(,|$)"
Run Code Online (Sandbox Code Playgroud)
请注意^,$提到的是与行的开始和结束匹配的正则表达式锚。这(^|,)将匹配行的开头或逗号。因此,这确保了以下模式必须开始或以逗号开头。
| 归档时间: |
|
| 查看次数: |
667 次 |
| 最近记录: |