php - 拆分表列中的数据以进行搜索

标签 php mysql csv

当我遇到这个问题时,我正在 php 中使用一个简单的 mysql 表,我想知道是否有解决方案。

该表以逗号分隔格式保存用户名及其位置。

 id|user|locations
------------------
 1 |abc | A, B, C
------------------
 2 |xyz | P, Q, R

我想知道是否有任何方法可以编写一个 mysql 查询,以便它返回一个位置为 A 的用户。 基本上,如果逗号分隔值中的一个值匹配,则应返回记录。

我知道将它们存储为单独的记录是更好的方法,但我只是好奇这样的检索是否可行。 提前致谢。

最佳答案

理想情况下,您应该考虑规范化数据,这样您就不会存储以逗号分隔的列表。

但是如果你不能改变表结构,MySQL 有一个 FIND_IN_SET()可用于返回与所需值匹配的行的函数:

select id, user, locations
from yourtable
where find_in_set('A', locations)

参见 SQL Fiddle with Demo

关于php - 拆分表列中的数据以进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15601044/

相关文章:

mysql - 从数据文件夹备份恢复 mysql 数据库

mysql查询查找可能以不同字母开头的特定单词?

mysql - mysql中有解析函数可以解决这个问题吗?

javascript - d3.nest() 将 csv 转换为 json

jquery - 当我使用 jQuery 将表导出到 csv 时,欧元符号变为 â

c# - 将 DataTable 导出为 CSV 时出现逗号问题

php 到 shell 脚本到 php 通过无密码 ipv6 ssh 隧道获取值

php - 为什么魔术方法 '__get' 被调用了两次?

php - 使用 PHP 显示 Mysql 数据给我一个空白页面

javascript - 如何在 JavaScript 中创建 "hover and <img> change"的简单改进版本?