我想从下表中搜索国家/地区:
+-----+-------------+
| id | country
+-----+-------------+
| 1 | US
+-----+-------------+
| 2 | US,IN,UK
| 3 | US,NZ
| 4 | AUS
我如何执行sql查询以获取包含country ='US'的所有记录以及其他以逗号分隔的国家/地区? 感谢
答案 0 :(得分:2)
您可以使用FIND_IN_SET函数,例如 -
SELECT * FROM table WHERE FIND_IN_SET('US', country) ;
答案 1 :(得分:1)
您可以使用FIND_IN_SET函数,例如 -
SELECT * FROM table
WHERE FIND_IN_SET('US', country) ;
答案 2 :(得分:1)
SELECT id, country
FROM yourtable
WHERE FIND_IN_SET('US', country)
或
SELECT id, country
FROM yourtable
WHERE CONCAT(',', country, ',') LIKE '%,US,%'
请参阅小提琴here。
答案 3 :(得分:1)
SELECT *
FROM tableName
WHERE FIND_IN_SET('US', country) > 0
答案 4 :(得分:1)
您可以使用LIKE
或RLIKE
。
SELECT * FROM table_name WHERE country RLIKE '(.+?,)*?US(,.+?)*'
或
SELECT * FROM table_name WHERE country LIKE '%US%'
第一个查询可以避免检索具有US作为子字符串的国家/ RUS
SELECT * FROM table_name WHERE country RLIKE '(.+,)(.+,)*?US(,.+)*|(.+,)*?US(,.+)(,.+)*'
仅选择与美国一起至少有另一个条目的那些。
答案 5 :(得分:1)
请尝试以下代码。
SELECT ID,COUNTRY FROM TABLE_NAME
WHERE COUNTRY LIKE '%US%;