php - 查询一列中的多个值

标签 php mysql

我有一张像:

id     name            children
1      Roberto         Michael,Dia
2      Maria           John,Alex
3      Mary            Alexandre,Diana

我的问题是;
我想找到谁有一个名叫亚历克斯的 child 。

我不能用 "where children = 'Alex'"在 SQL 中,因为我在相同的单元格中有多个名称。

所以我使用 "where children LIKE '%Alex%'" - 看起来很聪明但是
同时我开始像亚历克斯一样:(亚历山大
或者我想得到 dia 但结果是 dia 和 diana :(

我怎样才能获得那种数据类型的单个亚历克斯?

我希望我能用我糟糕的英语解释我的问题:D

最佳答案

最好的解决方案是规范化您的架构。您应该有一个单独的表格,每个 child 都有一行,而不是逗号分隔的列表。然后您可以加入此表以查找具有特定子项的父项。有关此示例,请参阅 @themite 的回答。

但是如果由于某种原因你不能这样做,你可以使用 FIND_IN_SET :

WHERE FIND_IN_SET('Alex', children)

关于php - 查询一列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28639692/

相关文章:

php - 如何从多个表在php mysql中进行搜索并在表中显示结果

php - Windows上的信号处理

mysql - 选择带有日语字符的 MySQL 行

mysql - 如何添加计数和清理/简化涉及 4 个 INNER JOIN 和 2 个 LEFT JOIN 的派生查询

php - file_get_contents - 无法打开流 : HTTP request failed! HTTP/1.1 404 未找到

mysql - 如何使用 ColdFusion 连接到 MySQL 数据库?

mysql - 创建mysql函数时语法错误

php - 使用 Ajax 从 JSON Web 服务检索数据

php - Laravel where - 如何使用条件引用相同的模式?

php - 找不到 laravel 列 : 1054 Unknown column 'created_at' in 'order clause'