0

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

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

并输出:

字母:C

姓名:克雷格、克里斯、乍得等。

我觉得好像很简单,出于某种原因,我在 Google 上找不到它。我也不想使用LIKE,因为我需要它只是第一个字符。

4

2 回答 2

4

用这个 :

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

%是 SQL 中的“小丑”……对于大多数 DBMS

于 2013-06-25T16:55:08.637 回答
0

您的查询需要稍作更改:

$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());
于 2013-06-25T17:09:13.337 回答