MySQL返回一个空结果集


MySQL returning an empty result set

我尝试在PHP中执行此操作,但始终返回0行。然后,在StackOverflow上搜索了一段时间后,我看到了一个技巧,可以先在SQL中进行搜索,看看结果是否正确返回。

我试着在SQL中做这件事,但它一直返回一个空的结果集,即使值在那里。

SQL

SELECT * FROM `serials_table` WHERE `ser_key`='ABCD-EFGH-IJKL-MNOP'

PHP

$result = $link->query("SELECT * FROM serials_table WHERE ser_key='$key'");

两者都返回空值。

ser_key列设置为文本类型,coallition:utf8_unicode_ci,Null:否,默认值:无

串行密钥条目在其中,列"ser_key"和表"serials_table"都存在。此外,我直接从表中复制粘贴串行密钥,并将其放入查询中,以避免任何拼写错误。

我是不是在表格结构上犯了一些错误?

我不知道在这里该做什么,如果有任何帮助,我将不胜感激。

当工作时

SELECT * FROM serials_table WHERE ser_key like '%ABCD-EFGH-IJKL-MNOP%'

然后,您的数据中有前导空格或尾随空格。

要恢复更新您现有的表数据,如

update serials_table 
set ser_key = trim(ser_key)

然后检查插入或更新ser_key的位置。在该代码段中,检查是否只将修剪后的数据放入其中。

尝试

SELECT * FROM `serials_table` WHERE TRIM(`ser_key`)='ABCD-EFGH-IJKL-MNOP'

删除空白

UPDATE `serials_table` set `ser_key`= TRIM(`ser_key`);