"="的 MySQL 通配符 - 有没有

标签 mysql wildcard

所以,

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/

相关文章:

php - 在 PHP 中记录配置文件更新

mysql - 如果表不存在,则跳过 R 中的 for 循环

java - 为什么列表< map <?扩展号码,? extends Number>> 不适用于 List<Map<Integer,Double>>

linux - 如何从字符类的范围中排除字符?

jquery - "has ANY value and is not null or blank"属性的 CSS3 选择器

css - 我可以使用哪些 CSS 运算符来添加更多页面名称?通配符?

php - 使用 PHP 和 MySql 数据库设置网页标题

php - HTML5 输入时间从 24 小时到 12 小时

mysql - 我如何通过使用 ORDER BY 和 LIMIT 的简单查询来解决这个问题?

SSL 证书 SAN 还是通配符?