我通过“LOAD DATA INFILE”在 MySQL 中导入了一个 .txt 数据库,一切似乎都正常,唯一的问题是,如果我使用以下查询在数据库中搜索记录:
"SELECT * FROM hobby WHERE name LIKE 'Beading'"
它返回 0 行,而如果我使用
""SELECT * FROM hobby WHERE name LIKE '%Beading%'"
它返回 1 行,即使存在一条 name=Beading 的记录。有谁知道这取决于什么?
使用 SQL 时LIKE:
您应该使用通配符标识符,例如(或不使用):
'%word'- 返回值以字母结尾的结果:“word”。
'word%'- 返回以字母开头的结果:“word”。
%word%- 在任何地方返回包含字母的结果:“word”。
还有更多模式搜索组合,例如:
'abc' 喜欢 'abc' 真
'abc' LIKE 'a%' 真
'abc'喜欢' b '真
'abc' 喜欢 'c' 假
如果您想要完全匹配,您应该使用:
"SELECT * FROM hobby WHERE name='Beading'"
但LIKE 'Beading'也应该工作,所以它可能是一个空格问题或区分大小写的问题。
当您想确保结果完整时,您需要注意整理大小写(敏感性)。
假设您的表是 UTF...CS,并且您想要进行不区分大小写的搜索,您应该在 SQL 查询中声明它,例如:
SELECT * FROM hobby WHERE name COLLATE UTF8_GENERAL_CI LIKE 'beading'
尝试测试不同的方法,看看哪种方法最适合您的目标。
第一个不起作用,因为 Like statment 你应该使用'%search word%'
你应该使用这个
"SELECT * FROM hobby WHERE name LIKE '% Beading %' or name LIKE '% Beading'
or name LIKE 'Beading %' or name LIKE 'Beading'"