mysql查询中逗号分隔的字符串比较

时间:2013-02-18 10:27:12

标签: mysql

我想从下表中搜索国家/地区:

+-----+-------------+
| id  | country     
+-----+-------------+
| 1   | US          
+-----+-------------+
| 2   | US,IN,UK
| 3   | US,NZ
| 4   | AUS  

我如何执行sql查询以获取包含country ='US'的所有记录以及其他以逗号分隔的国家/地区? 感谢

6 个答案:

答案 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)

您可以使用LIKERLIKE

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%;