http://pastebin.ca/1946913 当我在程序中写入“IN(1,2,4,5,6,7,8,9,10)”时,我得到正确的结果,但是当我将id变量添加到“IN”,结果不正确。我在mysql上做了一个函数,但是它仍然不工作,我该怎么办?MySQL IN运算符
1
A
回答
1
字符串(广义上,变量值)不会插入语句中。 vKatID IN (id)
检查vKatID
是否等于列出的任何值,它们只有一个:值为id
。您可以使用PREPARE
and EXECUTE
插值值来创建动态查询:
set @query = CONCAT('SELECT COUNT(*) AS toplam
FROM videolar
WHERE vTarih = CURDATE() AND vKatID IN (', id, ') AND vDurum = 1;')
PREPARE bugun FROM @query;
EXECUTE bugun;
2
你可以使用FIND_IN_SET()而不是,例如:
SELECT COUNT(*) AS toplam
FROM videolar
WHERE vTarih = CURDATE()
AND FIND_IN_SET(vKatID, id) > 0
AND vDurum = 1
Sets有局限性 - 他们不能有超过64个成员例。
0
您的ID变量是一个字符串(VARCHAR)不是一个数组(数组中的SQL),即你正在做这(在Java)
String id = "1,2,3,4,5,6,7"
你想
int[] ids = {1,2,3,4,5,6,7}
所以在你的代码
set id = (1,2,3,4,5,6,7,8,9,10)
我不能帮你用声明id的语法,因为我不知道。我建议,以确保代码是很容易更新的创建与IDS只是一个表,然后改变你的存储过程说
SELECT COUNT(*) AS toplam
FROM videolar
WHERE vTarih = CURDATE() AND vKatID IN (SELECT DISTINCT id FROM idtable) AND vDurum = 1;
希望这有助于。
相关问题
- 1. MySQL IN运算符结果集顺序
- 2. PHP等价于mysql“IN”运算符?
- 3. Cypher“IN”运算符
- 4. IN SQL运算符
- 5. 以IN运算符排序
- 6. Eslint:禁用运算符`in`
- 7. R + PostgreSQL - IN运算符
- 8. DataTable.Select使用IN运算符
- 9. OLEDB中的IN运算符
- 10. 条件运算符&& in java
- 11. SQL运算符“IN”不起作用
- 12. SQL中的IN运算符和=运算符有什么区别?
- 13. 运算符模块中`in`的等效运算符是什么?
- 14. MySql REGEXP运算符
- 15. 如何在Mysql二进制文件中创建“In”运算符?
- 16. mysql中的'IN'运算符中是否存在数值限制?
- 17. mysql IN运算符以降序顺序返回值
- 18. 使用IN运算符优化MySQL查询
- 19. 如何处理MySQL的结果使用IN运算符选择
- 20. 在MySQL和IN运算符之间有任何性能差异
- 21. 在MySQL中“合并”IN和LIKE运算符
- 22. 不能使用'in'运算符在
- 23. MySQLi准备语句与IN运算符
- 24. linq(到nHibernate):'like in'运算符
- 25. 使用IN运算符的子查询
- 26. Python中多个'in'运算符?
- 27. 'in'运算符如何为Python工作?
- 28. 是Map中的+ in + =前缀运算符=?
- 29. Python中的'in'运算符是“懒”吗?
- 30. 如何使用“in”运算符? Flex/AS3
'id'是一个string-y类型;你不能只是粘贴在那里,并期望它工作。 – NullUserException 2010-09-22 23:13:13