php - 不只选择列中的第一行

标签 php mysql select

函数.php

function getfriendone($id, $field){
$query = mysql_query("SELECT `$field` FROM `friends` WHERE `user_one`='$id'");
$run = mysql_fetch_array($query);
return $run[$field];
}

function getfriendtwo($id, $field){
$query = mysql_query("SELECT `$field` FROM `friends` WHERE `user_two`='$id'");
$run = mysql_fetch_array($query);
return $run[$field];
}

index.php

$fetch_friends = $_SESSION['user_id'];
$two = getfriendone($fetch_friends, 'user_two');
$three = getfriendtwo($fetch_friends, 'user_one');

$result = mysql_query("SELECT * FROM posts WHERE id IN ('$two', '$three')");
echo $two." | ".$three;

getfriend 函数的表( friend )

ID    user_one    user_two
1     1           2
2     1           3
3     4           1

$结果的表格(帖子)

ID    TEXT    NAME
1     Hello   Bob
1     Hello   Bob
2     Hello   Mark

我在这里想做的是回显 user_one 和 user_two 中包含整数 1 的所有行。在我的追逐中,这里只会回显 ID 1 和 3。它选择第一个匹配项并仅回显该匹配项。它按预期工作,但仅限于列中的第一个匹配项

最佳答案

如果我正确阅读:

SELECT *
FROM posts s
WHERE 
EXISTS 
(SELECT 1 FROM posts s2 WHERE s.id = s2.user_one) OR
(SELECT 1 FROM posts s2 WHERE s.id = s2.user_two)

将提取您需要的数据

SQLFiddle -> http://sqlfiddle.com/#!2/9ae070/3/0

关于php - 不只选择列中的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27565130/

相关文章:

php - 在 PHP 中过滤 JSON 数据

php - 在表中使用多个外键

java - 如何创建一个存储过程,由客户端应用程序在具有给定参数的表中搜索记录并返回找到的行数据?

database - 如何在 MySQL 查询中使用 OR 并在第一个条件为真时忽略第二个条件?

sql - Select * from Table 并仍然在单个命名列上执行某些功能

php - 将按钮登录更改为登录后注销 o 导航栏引导

mysql - 显示数据库内具有特殊前缀的表的数量

MySQL 选择计数和行计数

MySQL - 获取缺失的 2 列 ID

php - 使用php从json url获取数据?