我想在MySQL数据库中搜索记录,但是当使用这样的命令时:
$sql="SELECT name FROM students WHERE name LIKE '%name%'";
它返回包含其所包含字符的所有记录。
但我想只搜索名称以该字符开头的记录。
答案 0 :(得分:5)
你需要删除其中一个通配符,试试这样:
$sql="SELECT name FROM students WHERE name LIKE 'name%'";
%
字符表示此方面的任何字符。
因此,如果您执行%name
,则表示任何以name
结尾的内容,如果您执行name%
,则表示以name开头的任何内容。但是,当您执行%name%
时,它意味着包含单词name
一些例子:
SELECT name FROM students WHERE name LIKE 'name%'
匹配' namemy'但不是' myname'
SELECT name FROM students WHERE name like '%name'
匹配' myname'但不是' namemy'
SELECT name FROM students WHERE name like '%name%'
会匹配' myname'并且' namemy'
答案 1 :(得分:3)
试试这个
$sql="SELECT name FROM students WHERE name LIKE 'name%'";
<强>阐释:强>
%允许您匹配任何长度的任何字符串(包括零长度)
1)字符串前的%允许您将所需的列值结束与字符串匹配
Example - $sql="SELECT name FROM students WHERE name LIKE '%name'";
2)字符串后的%允许您将所需的列值与字符串匹配
Example - $sql="SELECT name FROM students WHERE name LIKE 'name%'";
3)字符串前后的%允许您匹配包含字符串的所需列值。
Example - $sql="SELECT name FROM students WHERE name LIKE '%name%'";