不输出匹配WHERE值

时间:2017-05-19 04:28:51

标签: php mysql sql-server

我甚至不确定如何正确地提出这个问题,但这是问题所在。 我有一个表格,其名称为',' email'和' number'作为我的列,在AUTO_INCREMENT上将id设置为PRIMARY KEY。当我试图找到这样的行时:

SELECT * FROM MyTable WHERE name='John Doe'` or `SELECT * FROM MyTable WHERE email='whatever@gmail.com

我总是得到我正在寻找的那一行,没有任何大惊小怪。 所有三列都是VARCHAR,长度为100。

'' column包含一串随机数,因为我从RFID卡中取出这些数字(因此将数据库与名称相关联)。所以当我做的时候

SELECT * FROM MyTable WHERE number='12334567890'

突然一切都没有工作,并返回0行。

这是它变得更加陌生的地方。如果我首先查询数字,我得到0行,但是,如果我首先查询名称(返回一行),然后我查询相关的数字,IT返回行。如果我要查询另一个数字,我会再次获得0行,如果我要查询前一个数字,我会再次获得0行...

我到目前为止尝试将另一个字符串附加到'num 1234567890',但这没有帮助(也许这是一些格式化的怪癖,我不知道)。

对于MySQL来说,我是初学者,但是这个简单的事情应该是一个蛋糕步行,但我在这里。

2 个答案:

答案 0 :(得分:1)

SELECT * FROM MyTable WHERE number LIKE '%12334567890%'

试试这个

答案 1 :(得分:0)

首先你理解where语句,如果你写的是col =" what"如果找到匹配项,它会将字符串与列匹配,然后只返回数据。在你的情况下,它是一个随机数,所以你不能用where子句提取数据,除非你知道确切的值。

SELECT * FROM MyTable WHERE number REGEXP '^[0-9].*$'