如何在 MySQL WHERE IN() 子句中处理具有多个值的记录?

Barbara Streisand
发布: 2024-11-06 18:07:03
原创
173 人浏览过

How to Handle Records with Multiple Values in a MySQL WHERE IN() Clause?

MySQL IN () 运算符

查询 MySQL 数据库时,WHERE IN () 运算符通常用于根据特定条件检索行列中的值。例如,以下查询从“table”表中检索“id”列与任意值(1、2、3、4)匹配的所有行:

<code class="sql">SELECT * FROM table WHERE id IN (1,2,3,4);</code>
登录后复制

但是,出现了问题当一条记录有多个“id”值时,例如 1 和 3。在这种情况下,查询可能不会返回该行。

解决方案

查询翻译符合以下 OR 条件:

<code class="sql">SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';</code>
登录后复制

因此,它将仅返回与任何这些条件匹配的行。

要解决此问题,一种选择是使用 SET 数据类型作为 " id”列。这允许您使用逗号分隔的字符串存储多个值。然后,您可以使用 FIND_IN_SET() 函数搜索特定值:

<code class="sql">SELECT * FROM table WHERE FIND_IN_SET('1', id);</code>
登录后复制

此查询将返回“id”列中值为“1”的所有行,无论任何行可能存在的其他值。

以上是如何在 MySQL WHERE IN() 子句中处理具有多个值的记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板