Php 不输出具有匹配WHERE值的行

Php 不输出具有匹配WHERE值的行,php,mysql,sql-server,Php,Mysql,Sql Server,我甚至不知道如何恰当地问这个问题,但问题是。 我有一个表,其中“name”、“email”和“number”作为我的列,id设置为自动递增的主键。当我试图找到这样一行时: SELECT * FROM MyTable WHERE name='John Doe'` or `SELECT * FROM MyTable WHERE email='whatever@gmail.com 我总是无忧无虑地得到我要找的那一排。 所有三列都是长度为100的VARCHAR “number”列包含一个随机数字符串,

我甚至不知道如何恰当地问这个问题,但问题是。 我有一个表,其中“name”、“email”和“number”作为我的列,id设置为自动递增的主键。当我试图找到这样一行时:

SELECT * FROM MyTable WHERE name='John Doe'` or `SELECT * FROM MyTable WHERE email='whatever@gmail.com
我总是无忧无虑地得到我要找的那一排。 所有三列都是长度为100的VARCHAR

“number”列包含一个随机数字符串,因为我从RFID卡中提取这些数字(因此有一个数据库将它们与名称关联)。所以当我这么做的时候

SELECT * FROM MyTable WHERE number='12334567890'
突然,一切都不正常,返回0行

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

到目前为止,我已经尝试将另一个字符串附加到它,如
'num 1234567890'
,但这没有帮助(可能是一些格式问题,我不知道)

说到MySQL,我是一个初学者,但像这样简单的事情应该是小菜一碟,而我就在这里

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

尝试此操作首先您了解where语句,如果您正在编写where col=“anywhere”,它将匹配字符串和列,如果找到匹配项,则只有它将返回数据。在您的情况下,它是一个随机数,所以除非您知道确切的值,否则无法使用where子句提取数据

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

我的天哪,那起作用了!!你能解释一下这个语法的作用吗?问题是,当你使用=时,它试图匹配你传递的确切数字。但是,当您使用LIKE时,它会查找具有该模式的所有值。但是,如果您的行包含类似于“8541233456789033”的数字,则上面的查询也会返回该数字,因为有%符号。这意味着前面的任何数字和后面的任何数字,但是如果里面的图案在那里,那么它将获取it@sunilwananje,考虑到(在我看来)如果我有一个与字符串完全匹配的字符串并查询它,这将比查找模式更精确,比如自动递增的ID号。至少值得深思,非常感谢你的解决方案!我查询的数字字符串并不是真正随机的,因为我有一个表,在表中我将相关的数字存储到名称,我有一个RFID扫描仪,可以提取数字并调用PHP脚本来查询匹配的数字。你能给我一些包含按数字列的示例数据吗