2017-05-31 23 views
1

我想搜索在MySQL数据库中的记录,但是当使用命令是这样的:搜索与特定文字记录为起始字

$sql="SELECT name FROM students WHERE name LIKE '%name%'"; 

它返回所有与它所包含的字符的记录。

但我想只搜索名称以该字符开头的记录。

回答

5

您需要删除通配符的一个,试试这样说:

$sql="SELECT name FROM students WHERE name LIKE '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' AND'namemy'

+0

非常感谢....我被卡在那个小概念上。再一次感谢 –

+0

@GuaravArora没问题 – FMashiro

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%'";