搜索

首页  >  问答  >  正文

MySQL: 在文本(CSV)列中查找匹配整数的列

这个表有一个文本列,以CSV格式存储对其他记录的引用,例如:

+----+----------------+
| id | linked_folders |
+----+----------------+
| 90 |    NULL        |
| 91 |    NULL        |
| 92 |    123,1,4,40  |
| 93 |    123,1       |
| 94 |    NULL        |
| 95 |    235,8       |
| 96 |    90          |
| 97 |    NULL        |
| 98 |    NULL        |
| 99 |    NULL        |
+----+----------------+

$id = 90;
SELECT * FROM my_table WHERE id = $id OR $id is in linked_folders

上面的伪查询应该返回行90和96。

我想匹配我拥有的某个确切值是否在这个字段上。

我在想使用LIKE可能行不通,因为我不知道逗号前后是否存在。

我有什么替代方案吗?

P粉336536706P粉336536706228 天前402

全部回复(1)我来回复

  • P粉885035114

    P粉8850351142024-04-05 14:04:01

    可以使用FIND_IN_SET来实现:

    select * 
    from my_table 
    where id = 90 or FIND_IN_SET(90, linked_folders) > 0

    这里有演示

    回复
    0
  • 取消回复