MySQL 从表中获取数据并检查表行中是不是存在用户 ID

Posted

技术标签:

【中文标题】MySQL 从表中获取数据并检查表行中是不是存在用户 ID【英文标题】:MySQL get data from the table and check if userid is present in the table rowMySQL 从表中获取数据并检查表行中是否存在用户 ID 【发布时间】:2013-04-28 17:43:40 【问题描述】:

我有一个名为“session”的表,该表有一个名为“userid”的列。

表格示例:

ROW    userid
-------------
1      61
2      128
3      84

现在在我的网站上,我在一个页面上列出了所有文章,每篇文章都是由用户撰写的,每个用户都有自己的 userid

我想要实现的是:如果在 session 表中写文章 EXISTS 的用户(userid=X)显示文本..

这是我尝试从会话表中获取用户 ID 的方式 ->

SELECT userid FROM #session

但我想用这段代码它只需要一个用户标识而不是所有的列...

有人可以帮我解决这个问题吗? 谢谢

【问题讨论】:

【参考方案1】:

以下将从会话中选择所有用户 ID:

SELECT userid FROM session

...这几乎正是您提到的代码。但是,您不需要获取用户 ID 的列表,您只需要查看表中是否存在某个 ID。所以,你要做的是计算用户 ID 是特定值的实例数,看起来像这样(在 php 中,使用 mysqli):

function is_id_in_session($db, $userid) 
    $total_result = $db->query("SELECT COUNT(userid) FROM session WHERE userid = $userid");
    $total = $total_result->fetch_row();
    return ($total[0] > 0);

【讨论】:

【参考方案2】:

希望你也有文章的数据库表(table article with column userid),你可以在你的查询中使用内连接:

Select userid FROM article 
JOIN session using(userid)

这将获取会话表中的所有用户并拥有文章

【讨论】:

以上是关于MySQL 从表中获取数据并检查表行中是不是存在用户 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何分离从表行中获取的值并将其存储在雪花中的数组中

jQuery:通过单击按钮从表行中获取值[重复]

在检查行是不是已存在时,选择不会从表中获取任何内容

在 SQL 表行中迭代的最佳方法 - C#

根据 URL 参数重定向,如果 URL 参数在表行中可用 - PHP MySQL

MySQL:PHP:由于警告,无法从表中获取数据