我有一个字符串comnid='1,2,3',需要查找具有这些id的行例如:
我有一张这样的桌子
colour comnid
----------------------
black 1
blue 2
green 3
yellow 4
我需要返回comnid为1,2,3的行
CREATE TABLE colours_table
SELECT 'black' colour, 1 comnid UNION ALL
SELECT 'blue' , 2 UNION ALL
SELECT 'green' , 3 UNION ALL
SELECT 'yellow' , 4 ;
SELECT * FROM colours_table;
colour | comnid :----- | -----: black | 1 blue | 2 green | 3 yellow | 4
SET @comnid = '1,2,3';
SELECT GROUP_CONCAT(colour)
FROM colours_table
WHERE FIND_IN_SET(comnid, @comnid);
| GROUP_CONCAT(colour) | | :------------------- | | black,blue,green |
db<;>此处小提琴
如果您需要在单独的行中使用GROUP_CONCAT:
SELECT colour
FROM colours_table
WHERE FIND_IN_SET(comnid, @comnid);
将是<代码>。。。 其中comnid在(1,2,3)中
请注意,查询可能容易受到SQL注入
的攻击。 您需要正确地准备它,这取决于您使用的支持语言/库。 在中,PHP
将使用函数mysqli_real_escape_string()
。