MySQL IN 子句 : max number of arguments

标签 mysql

假设您有以下查询:

SELECT * FROM table1 WHERE table1.id IN (1, 2, 3, 4, 5, ..., 999999)

IN 子句中项目数量的合理最大值是多少?我正在使用 Sphinx 生成全文搜索结果并将 ID 插入到 MySQL 查询中。这是一种可接受的方式吗?

最佳答案

您还可以让 IN 子句获取查询结果,例如:

SELECT * FROM table1 
WHERE table1.id IN 
    (
   SELECT id from table2
    )

这样,您就不需要生成包含所有可能值的文本字符串。

在 mysql 中,您应该能够根据需要在 IN 子句中放置任意多个值,仅受“max_allowed_pa​​cket”值的限制。

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_allowed_packet

关于MySQL IN 子句 : max number of arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793882/

相关文章:

python - Django - 在同一模型中有多个外键

php - 处理大表的统计数据

php - 解析xml并在mysql表中插入数据

phpMyAdmin 身份验证方法和强制 SSL 未按预期工作

mysql - 如何使用 SUM() 和 JOIN 在查询中选择具有最高值的行?

mysql - 今天结束了在 MySQL 中进行比较

php - 将外国安全主体翻译/解码为可读名称

mysql - 将电子邮件 VARCHAR(320) 存储为 UNIQUE,#1071 - 指定的键太长;最大 key 长度为 767

mysql - Spring Security - Bcrypt 与 CAS、MySQL、SearchModeSearchDatabaseAuthenticationHandler 和 BasicDataSource

mysql - SQL/MYSQL : Selecting data in a junction table