所以,
SELECT * FROM table WHERE col LIKE '%'
将返回所有内容。查询是否有通配符
SELECT * FROM table WHERE col = '*'
显然 *
不起作用,我只是把它放在那里表示我想要通配符的位置。我从中选择的列包含一个介于 1 和 12 之间的整数,我希望能够选择具有特定数字的所有记录,或具有通配符的所有记录。
谢谢,
最佳答案
LIKE 与 = 基本相同,只是 LIKE 允许您使用通配符。
这两个查询将返回相同的结果:
SELECT * FROM table WHERE col LIKE 'xyz';
SELECT * FROM table WHERE col='xyz';
LIKE 查询中没有“%”,它实际上与“=”相同。
如果您在整数列上进行选择,您应该考虑使用 IN() 或 BETWEEN 运算符。听起来您有两个单独的条件应该在代码中处理,而不是在查询中处理,因为您的条件要求您至少需要两种不同类型的查询。
编辑:我应该澄清 LIKE 和 = 仅在正常的、单调的字符串比较用法中是相似的。您应该检查 MySQL Manual有关其工作原理的详细信息,因为在某些情况下它并不相同(例如语言集)。
关于 "="的 MySQL 通配符 - 有没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/804381/