SQL从以逗号分隔的ID的列中获取id

时间:2018-05-06 21:09:13

标签: php sql mariadb

我有一个名为id的列,其中有一堆用逗号分隔的ID,如下所示:

asdaxxdfd2,wwfsfdssdfsd6,sdfdsfdsed2,23445rr55

我需要将列中的ID与现有$user_id

匹配

尝试这样做没有:

"SELECT id FROM my_table WHERE id LIKE '%" . $user_id . "%'";

不确定我还能做些什么。

谢谢。

4 个答案:

答案 0 :(得分:0)

"SELECT id FROM my_table WHERE concat(',', id, ',') LIKE '%," . $user_id . ",%';"

应该这样做。

但我也强烈建议规范化架构。

答案 1 :(得分:0)

您的问题有点含糊不清,我不知道这个解决方案是否符合您的意图:

SELECT REGEXP_SUBSTR(id, '[^,]+', 1, 1) COLUMN_1,
        REGEXP_SUBSTR(id, '[^,]+', 1, 2) COLUMN_2,
FROM my_table;

or just

SELECT id
FROM my_table
WHERE id LIKE '%wwfsfdssdfsd6%'

答案 2 :(得分:0)

SELECT REGEXP_SUBSTR(id," . $user_id . ") UserID FROM my_table;

这将返回匹配的用户ID,但是再次使用存储在单行中的值的数据库永远不是一个好主意。

答案 3 :(得分:0)

SELECT * FROM tbl WHERE id REGEXP "[[:<:]]$user_id[[:>:]]";

匹配&#34;字边界&#34;,从而处理字符串的开头和结尾。

但是,如果没有规范化,就无法使查询运行得比全表扫描更快。