MySQL通配符为"=" - 有一个

Dan*_*Dan 18 mysql wildcard

所以,

SELECT * FROM table WHERE col LIKE '%'
Run Code Online (Sandbox Code Playgroud)

将返回一切.是否有查询的通配符

SELECT * FROM table WHERE col = '*'
Run Code Online (Sandbox Code Playgroud)

显然*不起作用,我只是把它放在那里,以表明我想要一个通配符.我选择的列包含1到12之间的整数,我希望能够选择具有特定数字的所有记录,或者选择带有通配符的所有记录.

谢谢,

zom*_*bat 13

LIKE基本上与=相同,但LIKE允许您使用通配符.

这两个查询将返回相同的结果:

SELECT * FROM table WHERE col LIKE 'xyz';
SELECT * FROM table WHERE col='xyz';
Run Code Online (Sandbox Code Playgroud)

在LIKE查询中没有'%',它实际上与'='相同.

如果您在整数列上进行选择,则应考虑使用IN()或BETWEEN运算符.听起来你应该在你的代码中处理两个单独的条件,而不是在查询中,因为你的条件要求你至少需要两种不同的查询.

编辑:我应该澄清LIKE和=仅在正常,单调的字符串比较用法中相似.您应该查看MySQL手册以了解它的工作原理,因为有些情况不同(例如语言集).


Cha*_*rch 8

如果要选择所有内容,为什么要附加WHERE子句?只是有条不紊地离开它而不是在其中加入通配符.


Joe*_*ips 7

使用LIKE的原因是因为=不提供通配符支持.否则就没有理由喜欢