php - 返回 php 中的列,其中列与请求的列不同

标签 php mysql

我有这个查询:

function find_Friends($UserID){
    $mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
    if (!$mysqli) {
        die('There was a problem connecting to the database.');
    }
    $query="SELECT * FROM Friends WHERE UserID = '$UserID' OR FriendID = '$UserID'";
    $result = $mysqli->query($query);
    //List all relevant
    while($row = $result->fetch_row()) {
       //Do logic   
    }
    $mysqli->close();
}

所以假设查询是这样的:

SELECT * FROM Friends WHERE UserID = '123' OR FriendID = '123'

我的查询返回以下内容:

UserID | FriendID
123    |  456

我的问题是,如何在 php 中返回 FriendID 456? 我基本上只想返回不是查询数字的列,在本例中为 123。

因此,如果我正在寻找 8434 并且我得到的返回是:

UserID | FriendID
2356   | 8434

我想返回 UserID,而不是 FriendID,但在原始查询中我想返回 FriendID。

我如何在 php/mysql 中执行此操作?

最佳答案

如果您只关心数字而不关心它是哪一列,则可以将查询更改为:

SELECT IF(UserID='123',FriendID,UserID) AS Number FROM Friends WHERE UserID = '123' OR FriendID = '123'

或者,如果您确实关心它是哪一个,则按原样保留查询字符串并应用此 PHP:

while ($row = $result->fetch_row()) {
    if ($row['UserID'] == $UserID) {
        echo "Friend ID: " . $row['FriendID'];
    } else {
        echo "User ID: " . $row['UserID'];
    }
}

关于php - 返回 php 中的列,其中列与请求的列不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469491/

相关文章:

mysql - 在另一个字段中重用自动插入的生成字段

mysql - 如何比较同一张表中的记录列?

php - 在 $_POST 中重用 $_GET 变量?

python - 使用python在mysql中动态创建表

php - 如何将 PhpCsFixer 限制为暂存文件?

PhP mysql插入语法错误

C# - PHP 字符编码不匹配

Mysql 使用 if 语句和变量触发

php - 创建mysql select - 多个参数(有些是不必要的)

php - Yii2:无法从表单发送电子邮件