【发布时间】:2019-09-06 21:25:35
【问题描述】:
我有一个由新行分隔的字符串列表。我需要将这些字符串与一个表中的列中的值进行匹配。问题是我需要将不匹配的记录显示为定义的值,例如“未找到”,因此输出保持与输入相同的长度,并且结果都保持相同的顺序。
示例输入
- 苹果
- 橙色
- 梨
- 香蕉
期望的输出
- 苹果存在
- 找不到橙色
- 梨存在
- 香蕉存在
是否可以将自定义值分配给未找到的记录以及显示在单个语句中找到的记录? 信息似乎表明我可以使用 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;
}
?>
匹配的行返回没有错误。我只是不知道如何显示不匹配的行。
【问题讨论】:
-
遍历输入并查看它是否存在于行中。
-
@u_mulder 我得到了很多匹配行的结果,但我还需要显示不匹配的结果。
-
你有所有的输入吗?遍历它们并检查是否在查询结果中找到它们。
-
@u_mulder 我想我知道你的意思。我会做一个测试然后回来。干杯。