如何检查sql的第一列或第二列中是不是存在一个特定值?

Posted

技术标签:

【中文标题】如何检查sql的第一列或第二列中是不是存在一个特定值?【英文标题】:How to check that one specific value is exist in first coumn or second column in sql?如何检查sql的第一列或第二列中是否存在一个特定值? 【发布时间】:2019-08-16 04:22:51 【问题描述】:

    我只有一个值。现在,我想检查值是否存在于 'from_user_id' 列或 'to_user_id' 列,然后我想 返回包含该值的最后一条记录,该值将在 “from_user_id”或“to_user_id”列。

    $query3 = $this->db->query("select * from message where 26 
    IN(from_user_id,to_user_id) desc limit 1");
    foreach($query3->result() as $row)
    
       $message = $row->message;
    
    

    这个我试过了,但是没用。

    $query3 = $this->db->query("select * from message where 26 
    IN(from_user_id,to_user_id)");
    
    foreach($query3->result() as $row)
    
        $message = $row->message;
     
    

    我也试过这个没有给我最后的记录。

【问题讨论】:

IN() 包含要查找的值,$str[$i] 是您要查找的字段,您只需要两个 OR where 条件 最后一条记录然后应用order bytop 1 【参考方案1】:
SELECT * 
FROM message 
WHERE from_user_id = 26 OR to_user_id = 26
ORDER BY id DESC
LIMIT 1

假设,在您的消息表中,您有整数主键作为 id。如果没有,请将 order by 语句更新到正确的字段

【讨论】:

【参考方案2】:

这很容易检查

 $this->db->where('from_user_id', 26);
 $this->db->or_where('to_user_id', 26);
 $result = $this->db->get('message')->result();

 if(isset($result) && count($result) > 0) 
     foreach($result as $row)
     
        $message = $row->message;
     
  else
     echo 'No result found';  
  

【讨论】:

【参考方案3】:

你可以像这样创建一个活动记录:

$id = 26;
$this->db->where('from_user_id', $id)
    ->or_where('to_user_id', $id)
    ->order_by('message_id','desc')
    ->limit(1);
$query3 = $this->db->get('message')->row();

if (!empty($query3)) 
    $message = $query3->message;
 else 
    echo 'No message found!';

message_id 是消息表 ID。

【讨论】:

使用join是什么意思?你在哪里加入? 您还想使用查询生成器(活动记录)还是仅使用本机查询?

以上是关于如何检查sql的第一列或第二列中是不是存在一个特定值?的主要内容,如果未能解决你的问题,请参考以下文章

合并第二列到最后一列以获取第一列中的重复项

Vba 代码在单元格范围内复制特定值

第三列单元格应该是excel第一列和第二列中两个数字的乘积

微信小程序二级联动,如何使第一列数据与特定的第二列数据对应(数据动态获取,后台)?

R语言中怎么把第一列的数据作为行名

如何将 onclick 事件添加到表格列?