php - 查询列中的多个值

标签 php mysql

我有一个像这样的表:

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

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

我无法在 SQL 中使用“where Children = 'Alex'”,因为我在同一单元格中有多个名字。

所以我使用“where kids LIKE '%Alex%'” - 这看起来很聪明,但是 与此同时,我像亚历克斯一样开始:( Alexandre 或者我想得到 dia 但结果是 dia 和 diana :(

如何获得该数据类型的单个 Alex?

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

最佳答案

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

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

WHERE FIND_IN_SET('Alex', children)

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

相关文章:

php - 替换为与更新

php - Cordova - jquery ajax 发布到服务器上的 php

mysql - Laravel 数据库问题 - 符号链接(symbolic link)级别过多

php - Doctrine 无法连接到 MAMP mysql 数据库

php - CRON 的行为就像在浏览器中运行脚本一样?

mysql - 在Linux中调整mysql服务器

php - 如何使用来自 MySQL 数据库的数据使用 fusioncharts 创建组合图(条形图和折线图)?

php - 限制php中获取数据的列

php - unix mv --backup=编号

php - 将值从 php 页面传递到其他页面的模式