我想在mySQL数据库中搜索记录,但是当使用这样的命令时:
$sql="SELECT name FROM students WHERE name LIKE '%name%'";
它带有包含字符的所有记录。
,但我想仅搜索只有该字符的名称的记录。
您需要删除其中一个通配符,以下尝试:
$sql="SELECT name FROM students WHERE name LIKE 'name%'";
%
字符是指此方面的任何字符。
因此,如果您执行%name
,则意味着任何以name
结尾的东西,如果您执行name%
,则意味着任何以名称开头的东西。但是,当您执行%name%
时,这意味着任何包含 name
一些示例:
SELECT name FROM students WHERE name LIKE 'name%'
会匹配"名字",但不能匹配'myname'
SELECT name FROM students WHERE name like '%name'
会匹配" myname",但不匹配" namemy"
SELECT name FROM students WHERE name like '%name%'
将匹配" myname"one_answers" Namemy"
尝试以下:
$sql="SELECT name FROM students WHERE name LIKE 'name%'";
说明:
%
允许您匹配任何长度的字符串(包括零长度(
%
在字符串将允许您匹配所需的列值与字符串结束,例如:$sql="SELECT name FROM students WHERE name LIKE '%name'";
%
在字符串之后,您将允许您匹配所需的列值,例如:$sql="SELECT name FROM students WHERE name LIKE 'name%'";
%
在字符串之前和之后,您可以匹配所需的列值,该列值在任何地方都包含字符串。例如:$sql="SELECT name FROM students WHERE name LIKE '%name%'";