我在mysql中有一个这样的表,mysql中的数字和单词被标记为“text”
+---------+----------+ | numbers | words | +---------+----------+ | 1 | help | | 2 | helper | | 3 | helped | +---------+----------+
但句子
SELECT * FROM Talbe(just refer the talename) WHERE words='help'
不会返回任何结果,我不知道为什么和我错在哪里? 并且在“帮助”之前和之后没有任何空白
答案 0 :(得分:2)
SELECT * FROM Table AS t WHERE t.words='help'
尝试使用别名,这样就可以了。表是保留关键字,将表的名称更改为其他内容
SELECT * FROM myable AS t WHERE t.words='help
另一种方式是逃避
SELECT * FROM `Table` WHERE words='help'
但我建议更改表名并使用别名
答案 1 :(得分:2)
如果MySQL没有在您的查询中抛出任何错误,那么很可能Table.words包含其他不可打印的字符。尝试执行以下操作:
SELECT t.words, hex(t.words), 'help', hex('help'), hex(t.words) = hex('help')
FROM Table t
WHERE words LIKE '%help%'
它会将任何不可打印/不可见的字符(例如,空格)编码为十六进制。比较十六进制(t.words)和十六进制('help'),最有可能你得到了空格(十六进制为20)或者在前面或在t.words结尾处有换行符。
答案 2 :(得分:0)
尝试:
SELECT * FROM `Table` WHERE words='help'
或者:
SELECT * FROM `Table` WHERE words like 'help'
答案 3 :(得分:0)
尝试使用引号:
SELECT * FROM `Table` WHERE `words` = 'help'
答案 4 :(得分:0)
只是要问明显的。您确定表格中有文字' help' 。如果是,您可以尝试
SELECT * FROM table
然后右键点击' help'从结果中复制文本并将其放在查询中
SELECT * FROM tableName WHERE words = 'copied text'
有时你可能没有注意到或意外地进入了一个额外的空间(这发生在我身上)。既然你尝试了上述所有答案,但它没有用......这可能就是问题所在。希望它有效。