我有一个表A
和一个列名nama_dir
数据类型varchar(50).
我想找到这个2134882
所以我进行查询
select * from table A where nama_dir = '2134882'
,我没有得到任何结果。
但是当我将=
更改为like
并添加'%2134882%'
时,我得到了数据,有人可以解释为什么会这样吗?数据的前端和后端没有间距。为什么我在使用like
但不使用=
时出现
请帮助我
答案 0 :(得分:1)
可能有一些空格,您可以尝试trim
吗?
select * from table A where trim(name_dir) = '2134882'
答案 1 :(得分:0)
也许MySQL会将您的值视为整数,请尝试删除引号
select * from A where name_dir = 2134882
答案 2 :(得分:0)
您可以将磨损的目录名称写成从 name_dir
到nama_dir
:
select * from table A where nama_dir = '2134882'
如果使用=
运算符,则会在表中找到特定的值。这意味着在您的表2134882
中,此DIR不可用,则数据无法显示给您。
如果您使用LIKE
运算符,那么它将在2134882
该数据中找到可用的值。
在WHERE子句中使用LIKE运算符在列中搜索指定的模式。
有两个通配符与LIKE运算符一起使用:
%
-百分号代表零个,一个或多个字符。
_
-下划线表示单个字符
像Operater一样: WHERE CustomerName Like '%or%'
说明::查找在任何位置具有“或” 的任何值
答案 3 :(得分:0)
从代码中删除“表格”。正确的代码是:
SELECT * FROM A WHERE name_dir = '2134882'