如果您将我的问题标记为重复,那么请确保链接到的问题不是特定于其他人的应用程序的示例。
----------------------
| Table |
----------------------
| ID | Name | Color |
----------------------
| 1 | Ae | Red |
| 2 | Be | Red |
| 3 | Ce | Red |
| 4 | De | Red |
----------------------
我的问题是,说我想进行SQL查询以使用PHP从第一行中选择 ONLY (唯一)ID号。我该怎么办?
这是我尝试过的:
php
$host = "localhost";
$name = "db";
$user = "root"
$pass = "password";
$connection = mysqli_connect($host, $user, $password) or die("Failed");
mysqli_select_db($connection, $name) or die("Failed");
$id = mysqli_query($connection, "SELECT id FROM db WHERE id=0");
$row = mysqli_fetch_assoc($id);
echo "$id";
为什么这样不起作用?什么需要更改为输出1而只有1?请ELI5,SQL伤了我的脑筋。
答案 0 :(得分:3)
在SQL方面,您必须在“顺序”方面定义“第一”,例如:
SELECT id FROM db ORDER BY id LIMIT 1
您要在结果中按id
列进行排序,该列默认为升序(1、2、3,...),并用{{ 1}}子句。要获得最高值,您需要LIMIT
降序排列,并选择第一个值。
在您的情况下应用此方法,可以使用bind_result
来获取ID值:
ORDER BY id DESC
SQL乍一看似乎令人困惑。如果您认为这就像编写像PHP这样的过程代码,那是错误的思维定势。这是一种查询语言,它本身并不像编程那样,而是关于声明所需内容并让服务器弄清楚并返回数据的方式。
好消息是SQL已经存在了数十年,并且有很好的文档记录,甚至包括您在此处使用的MySQL语言。除了MySQL手册之外,还有无数关于数据库和SQL的书籍,无论是在理论上还是在实践上。如果仍然令人困惑,您可能需要找到更好的介绍和参考。