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