使用正则表达式的 mysql 查询

标签 mysql regex

我有一个像这样的 MySQL 表

restaurant_id   restaurant_name     restaurant_serving_cuisines
1               Vasantha Bhavan     4,5,6
3               Little India        7,5,6
5               Mohan Restaurants   16,2,4,1,5,3,6
6               Sri Restaurant      34,16,21,2,23,38,30,7,25,9
13              The Taco Shop       5
22              KFC                 15
37              belargio            14,15,16,2,7,4,1,5,17,12,3,13,6
56              Pizza Hot           5

我需要找到供应菜系 ID 为 5 和 15 的餐厅。 我需要以 belargio 的身份获得餐厅。

我正在写查询

SELECT restaurant_id, restaurant_name,restaurant_serving_cuisines 
FROM `rt_restaurant`
WHERE restaurant_serving_cuisines REGEXP concat_ws("|",    "5",    "15");

但我无法得到准确的结果。

最佳答案

如何使用 FIND_IN_SET

SELECT restaurant_id, restaurant_name,restaurant_serving_cuisines 
FROM `rt_restaurant` 
WHERE find_in_set(5, restaurant_serving_cuisines) > 0
and find_in_set(15, restaurant_serving_cuisines) > 0

关于使用正则表达式的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244339/

相关文章:

php - 将特定格式的日期插入 MySQL 数据库

PHP preg_split 忽略转义序列

java - 解析字符串中的值

c++ - 如何通过C++从整个路径获取文件名

mysql - Sequelize where 查询一对多关联属性?

mysql - 未订购的客户

php - 在mysql中同时选择和更新时出错

mysql - 同时查询多个mySQL表

javascript - 使用 jquery 从批量文本中提取所有电子邮件地址

javascript - 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字