我正在处理一个项目,我正在将一串数字存储在用户数据库列中。PHP,MySQL查询
我需要做一个查询,发现所有地方该列包含数字X的用户
例子:
Usesrs田部:
ID | NAME | CONNECTIONS
01 | Quinton | 4,44,73,91
我需要通过用户查看表并查看哪些用户有连接#44。是否有一种有效的方式来执行此操作,而不是抓取整个表,然后遍历每个用户连接值。
我知道有一种方法可以做与IN()
相反的功能。
我正在处理一个项目,我正在将一串数字存储在用户数据库列中。PHP,MySQL查询
我需要做一个查询,发现所有地方该列包含数字X的用户
例子:
Usesrs田部:
ID | NAME | CONNECTIONS
01 | Quinton | 4,44,73,91
我需要通过用户查看表并查看哪些用户有连接#44。是否有一种有效的方式来执行此操作,而不是抓取整个表,然后遍历每个用户连接值。
我知道有一种方法可以做与IN()
相反的功能。
如果可能的话,如果可能的话,规范化模式以使字符串搜索不成问题会更好。
CREATE TABLE Users
(
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100)
)
CREATE TABLE UserConnections
(
UserId INT NOT NULL REFERENCES Users (UserId),
Connection INT NOT NULL
)
另外,索引UserConnections中的Connection列。然后,搜索连接列。它会更快。
我是...是啊,不。你需要阅读“正常化”。 – 2011-03-09 02:17:16
这里是一个链接,所以你可以做的建议[阅读规范化](http://en.wikipedia.org/wiki/Database_normalization)。 – Charles 2011-03-09 02:22:11
右键 - 修复设计,不要更深地挖洞。 – dkretz 2011-03-09 02:27:05