为什么我在使用=时找不到数据,但是在使用时却显示出来

时间:2018-07-10 13:24:01

标签: mysql sql

我有一个表A和一个列名nama_dir数据类型varchar(50). 我想找到这个2134882 所以我进行查询

select * from table A where nama_dir = '2134882'

,我没有得到任何结果。 但是当我将=更改为like并添加'%2134882%'时,我得到了数据,有人可以解释为什么会这样吗?数据的前端和后端没有间距。为什么我在使用like但不使用=时出现

请帮助我

Describe table

using trim

not using trim

using like

4 个答案:

答案 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_dirnama_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'