为了账号安全,请及时绑定邮箱和手机立即绑定

MYSQL select 显示匹配和不匹配的记录

MYSQL select 显示匹配和不匹配的记录

PHP
慕后森 2022-01-02 19:41:03
我有一个由新行分隔的字符串列表。我需要将这些字符串与单个表中一列中的值进行匹配。问题是我需要将不匹配的记录显示为定义的值,例如“未找到”,因此输出保持与输入相同的长度,并且结果都保持相同的顺序。示例输入苹果橘子梨香蕉期望输出苹果存在找不到橙色梨存在香蕉存在是否可以将自定义值分配给未找到的记录以及在单个语句中找到的显示记录?信息似乎表明我可以使用 IFNULL 创建一个语句来返回不匹配的记录,我已经尝试过这个但无济于事。 <?php // Wrap strings for select statement $strings = $_POST['mystrings']; $regex = '~<[^>]+>(*SKIP)(*FAIL)|\b\w+\b~';  $strings_wrapped = preg_replace($regex, "'\\0',", $strings); $strings_prepared = substr($strings_wrapped, 0, -1); // Statement $select = "select * from table where specific_row in ($strings_prepared)"; // Connect $connect = mysqli_query($con, $select);      // Retrieve rows      while ($row=mysqli_fetch_array($connect)) {      $column1 = $row['column1'];      $column2 = $row['column2'];      $column3 = $row['column3'];      $column4 = $row['column4'];      $column5 = $row['column5'];      // Display results      $results = "$column1-$column2-$column3-$column4-$column5\n";      echo $results;      } ?>匹配的行被正确返回。我只是不知道如何显示不匹配的行。
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

这是您可以使用的方法:


// Statement

$select = "select * from table where specific_row in ($strings_prepared)";

// Connect

$connect = mysqli_query($con, $select);


// Retrieve rows

$founded = [];

while ($row = mysqli_fetch_array($connect)) {

    $founded[$row['specific_row']] = $row['column1'];  // or whatever

}


foreach ($strings_prepared as $string) {

    if (!empty($founded[$string])) {

        echo 'found';

    } else {

        echo 'NOT found';

    }

}


查看完整回答
反对 回复 2022-01-02
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

您可以使用子查询创建包含要搜索的名称的派生表,并将其与表连接。


SELECT a.value, IF(b.specific_row IS NULL, 'not found', 'exists') AS found

FROM (

    SELECT 'apple' AS value

    UNION

    SELECT 'orange'

    UNION

    SELECT 'pear'

    UNION

    SELECT 'banana'

) AS a

LEFT JOIN table AS b ON a.value = b.specific_row


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 337 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号