php - 如何从一张表中提取大量多行?

标签 php mysql database

这是我原来问题的扩展: How do I pull all rows from a table with one unique field and specific values for another field?

我有一个包含两个字段的表:user_id 和 Skill_id。

我想提取具有特定数字的 Skill_id 的所有行,但我有大量的 Skill_id 需要搜索(~30)。我使用了上面链接的问题中提出的自连接建议,但由于需要寻找大量技能,该查询被证明非常慢。

如何在不使查询陷入困境的情况下查找大量技能 ID?

编辑:

这是我正在寻找的示例。使用下表,我想提取 Skill_id 为 10 AND 11 AND 12 等的所有用户行(除非我一次寻找更多类似 30 个技能)。

TABLE

user_id   |  skill_id
=====================
1         |    10
1         |    11
1         |    12
1         |    13
2         |    10
2         |    12
2         |    13
3         |    15
3         |    16
4         |    10
5         |    45
5         |    46

最佳答案

如果我很好地理解您的问题,以下查询可能会对您有所帮助。假设 (user_id, Skill_id) 是 UNIQUE 或 PK。

SELECT user_id
FROM tab
WHERE skill_id IN (30 entries)
GROUP BY user_id
HAVING SUM(skill_id IN (30 entries)) = 30;

您可以在这里进行测试。 http://www.sqlfiddle.com/#!2/f73dfe/1/0

关于php - 如何从一张表中提取大量多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20437139/

相关文章:

php - 调用未定义的方法 UserModel::addUser()

mysql - 生产环境创建MySQL数据表即可

MySQL 在左连接后删除行

database - 使用 Riak 进行链接遍历 - 搜索 'common friends'

php - 安装wamp后无法加载phpmyadmin

php - 无法访问 sql 查询的 mysqli_result 对象

java - 当我从 JSP 向 MySQL 发送请求时,数据库中显示的俄语符号不正确

mysql - 从 MS SQL 迁移到 MySQL : SQLOLEDB? 迁移套件登录错误?

sql - oracle查询在两个表中查找匹配项

php - 在 if/elseif block 中使用 echo <<<EOT 出现意外的 EOF