gpt4 book ai didi

mysql - SQL : How to fetch data while in() clause does not work

转载 作者:行者123 更新时间:2023-11-29 10:56:36 24 4
gpt4 key购买 nike

我有一个名为“items”的表。它具有包括索引列的列,如下所示。

title        | name   | areacode
---------------------------------
police | user1 | 31,31,31
FireStation | user2 | 31,1,2
Restaurant | user22 | 1,1,0,32,32
---------------------------------

当我使用下面的语句时

    select title, name from items where IN(31)

我得到(警察,用户1)和(消防站,用户2)但是当我使用 IN(1) 时我无法获取(FireStation,user2)

我发现 IN 子句在多个值(例如)时很有用

    IN(31,1)

被使用。

但是当 IN(1) 或 IN(0) 等单值时,有时无法正确获取数据。我发现了 CONTAINS 方法。但对它并不熟悉。

总之,如果区域码包含值“1”,我如何获取(FireStation,user2)?或(餐厅,user22)当区域代码值为“0”时?

最佳答案

您可能不应该将区号数据存储为 CSV,因为它是非标准化的,因此很难使用。也就是说,MySQL 有一个名为 FIND_IN_SET() 的函数,它可以检查给定值是否出现在 CSV 字符串中。像这样的东西应该有效:

SELECT title, name
FROM items
WHERE FIND_IN_SET('0', areacode) > 0

如果您想检查 01 区号,您可以使用以下 WHERE 子句:

WHERE FIND_IN_SET('0', areacode) > 0 OR FIND_IN_SET('1', areacode) > 0

关于mysql - SQL : How to fetch data while in() clause does not work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42941352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com