我想做一个类似这样的查询
SELECT * from TableA WHERE ColumnA IN (LIST)
本质上,我想构建一个逗号分隔的列表或其他内容,并确保 ColumnA 中的值位于该列表中。
我可以执行子查询,但我的应用程序中已经有了我需要的列表,并且不想再次查询它。
最佳答案
您可以轻松做到这一点。
如果您的 ColumnA
数据类型是某种文本数据类型,您应该编写程序来生成如下查询:
SELECT whatever FROM TableA WHERE ColumnA IN ('brillig','slithy','tove','gyre')
请注意以逗号分隔的字符串列表,并注意字符串是用 '
单引号分隔的。
如果您使用绑定(bind)变量,则需要绑定(bind)字符串变量。准备好的查询将如下所示。
SELECT whatever FROM TableA WHERE ColumnA IN (?,?,?,?)
使用列表作为绑定(bind)变量并没有什么魔力(ColdFusion 中除外)。您需要一一绑定(bind)变量。
关于MySql 选择项目在列表中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25559082/