Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅按第一个字符从数据库中选择名称_Php_Sql_Database - Fatal编程技术网

Php 仅按第一个字符从数据库中选择名称

Php 仅按第一个字符从数据库中选择名称,php,sql,database,Php,Sql,Database,我希望能够通过第一个字符找到数据库中的所有名称。例如: $sql="SELECT name LEFT(".$_GET['abc'].",1) from `users` ORDER BY `id` LIMIT 20"; $res=mysql_query($sql) or die(mysql_error()); 和输出: 信:C 姓名:克雷格、克里斯、查德等 我觉得它很简单,不知为什么我在谷歌上找不到它。我也不想像那样使用,因为我需要它只是第一个字符 使用以下命令: SELECT name FRO

我希望能够通过第一个字符找到数据库中的所有名称。例如:

$sql="SELECT name LEFT(".$_GET['abc'].",1) from `users` ORDER BY `id` LIMIT 20";
$res=mysql_query($sql) or die(mysql_error());
和输出:

信:C

姓名:克雷格、克里斯、查德等

我觉得它很简单,不知为什么我在谷歌上找不到它。我也不想像那样使用
,因为我需要它只是第一个字符

使用以下命令:

SELECT name FROM `users` WHERE name LIKE 'c%'
%
是SQL中的“小丑”。。。对于大多数DBMS,请使用以下命令:

SELECT name FROM `users` WHERE name LIKE 'c%'

%
是SQL中的“小丑”。。。对于大多数DBMS,您需要稍微更改查询:

$first_letter = substr($_GET['abc'], 0, 1);
$sql="SELECT name from `users` WHERE LEFT(name ,1) = '" . $first_letter . "' ORDER BY `id` LIMIT 20";
// OR SUBSTR variant
$sql="SELECT name from `users` WHERE SUBSTR(name, 1, 1) = '" . $first_letter . "' ORDER BY `id` LIMIT 20";
$res=mysql_query($sql) or die(mysql_error());

您的查询需要稍作更改:

$first_letter = substr($_GET['abc'], 0, 1);
$sql="SELECT name from `users` WHERE LEFT(name ,1) = '" . $first_letter . "' ORDER BY `id` LIMIT 20";
// OR SUBSTR variant
$sql="SELECT name from `users` WHERE SUBSTR(name, 1, 1) = '" . $first_letter . "' ORDER BY `id` LIMIT 20";
$res=mysql_query($sql) or die(mysql_error());

原始的MySQL扩展现在是,并且在连接到数据库时将生成E_不推荐的错误。相反,请使用MySQLi或PDO_MySQL扩展…尤其是当此查询适合SQL注入时,如果您这样做,您的数据库(可能还有您的整个服务器)将被拥有。原始MySQL扩展现在是,并且在连接到数据库时将生成E_不推荐的错误。相反,请使用MySQLi或PDO_MySQL扩展…..尤其是当此查询适合SQL注入时,如果您这样做,您的数据库(可能还有您的整个服务器)将被拥有。是的。在我看来,“输出”部分不是sql的角色。现在也许你猜到了其他的东西,但这是我从问题中理解的……谢谢,我对Like的理解是错误的,这正是我所需要的。@u\u mulder:显然OP不知道可以使用Like:)你能说明我们遗漏了问题的哪一部分吗:(“我也不想使用LIKE,因为我只需要它作为第一个角色。”这表明他不知道可以使用LIKE:(@u_mulder:而且你显然没有读OP的评论!无论如何……就这样吧!是的,“输出”“从我的观点来看,部分不是sql的作用。现在也许你猜到了其他的东西,但这正是我从问题中理解的……谢谢,我对Like的理解是不正确的,这正是我所需要的。@u\u mulder:显然OP不知道可以使用Like:)来完成这项工作。请你具体说明我们遗漏了问题的哪一部分:(“我也不想使用LIKE,因为我只需要它作为第一个角色。”这表明他不知道可以使用LIKE:(@u_mulder:而且你显然没有读OP的评论!无论如何……就这样吧!你试着理解完整的问题了吗?;-)不。和其他人一样。满意吗?你试着理解全部问题了吗?;-)不。和其他人一样。满意吗?