gpt4 book ai didi

MySQL - WHERE x IN(列)

转载 作者:行者123 更新时间:2023-12-01 00:03:31 25 4
gpt4 key购买 nike

我尝试了一些东西。这是 SQL Fiddle 中的一个简单示例:Example

有一列 someNumbers(逗号分隔的数字),我试图获取该列包含特定数字的所有行。问题是,结果只包含 someNumbers 以特定数字开头的行。

查询 SELECT * FROM myTable where 2 in ( someNumbers ) 只返回 ID 为 2 的行,而不返回 ID 为 1 的行。

有什么建议吗?谢谢大家。

最佳答案

您正在以错误的格式存储数据!您不应在单个字符串列中存储多个值。您不应该将数字存储为字符串。相反,您应该有一个联结表,每个 id 和每个 number 一行。

有时,您别无选择,因为其他人创建了一个设计非常糟糕的数据库。对于这些情况,MySQL 具有函数 find_in_set():

SELECT *
FROM myTable
WHERE find_in_set(2, someNumbers ) > 0;

然而,正确的解决方案是修复数据模型。

关于MySQL - WHERE x IN(列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49049442/

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