PHP SQL查询正确的语法

标签 php mysql sql syntax

我有一个名为 friends 的数据库表有 3 列:added_by , added_whoadded_time .

在 PHP 脚本中,我尝试使用如下查询返回特定用户的 friend :

SELECT * 
FROM friends 
WHERE added_by = '$specific_user_id' 
OR added_who = '$specific_user_id';

我如何获取 friend 的用户 ID,因为它可能在 added_by 中。或 added_who列取决于谁先添加了谁。我知道怎么做很长的路要走,比如检查是否 added_who == $specific_user_id如果是,那么 friend 的 id 在 added_by 中专栏,反之亦然,但我想知道是否有更快、更好的方法。

最佳答案

使用CASE 语句。有关详细信息,请参阅 CASE 的 MySQL 文档.

应用的一个例子是:

SELECT CASE added_by WHEN '$specific_user_id' THEN added_who ELSE added_by END as friend_id  
FROM friends 
WHERE added_by = '$specific_user_id' 
    OR added_who = '$specific_user_id';

关于PHP SQL查询正确的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631532/

相关文章:

php - 如何从某个数字/偏移量开始 AUTOINCREMENT?

PHP 服务器不返回另一个国家的数据

Mysql - 秒差意外结果

php - 我想在 php 中找到用户的当前位置

php - 类别偏移

php - MySQL如何在使用除法时保留精度?

mysql - SQL选择符合条件的数据,先显示,然后对剩余数据进行排序

sql - 我可以在 Teradata 中查询过程的 RequestText 吗?

php - Eloquent 删除-SQLSTATE [22007] : Invalid datetime format: 1292 Truncated incorrect DOUBLE value:

php - YouTube网址的preg_match正则表达式部分失败