繁体   English   中英

MySQL:检测数据库中是否存在值

[英]MySQL: detect if values exists in DB

我收到类似(逗号分隔符)的值列表

D1,D2,D3

我需要检查每个值是否都存在于数据库中(检查D1是否存在,D2和D3)

我知道我可以循环并向数据库发送“ N”个查询(但有时会收到很长的清单)

MySQL中是否有任何自动方式来处理此问题? 或在PHP中

要匹配的表:

id     data
1       D1
2       D3
3       D4
4       D5

谢谢,

要检查它是否存在,您需要查询数据库,如下所示:

SELECT data FROM table WHERE `data` IN ('D1','D2','D3')

或循环查看,分别查找每个值(取决于您应用的逻辑)

foreach( ... ) {
   select ....
}

尝试这个:

SELECT * FROM table WHERE `data` IN ('D1','D2','D3').

您可以使用此查询

select * from table where data in ('D1','D2','D3','D4')

这是一个片段,您可以在PHP中使用它来检索所需的信息。

// setup database connection
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
// define the list of values to check for 
$values_list = "D1,D2,D3";
// explode list into array
$values = explode(',', $values_list);
// initiate empty array for database values
$db_values = array();
// create the query
$query = "SELECT data FROM table WHERE `data` IN ('" . implode("','", $values) . "')";
// run the query
if ($result = mysqli::query($query)) { 
    // loop through results and add values to database value array
    while($obj = $result->fetch_object()){ 
        $db_values[] = $obj->data;
    } 
} 
$result->close();
// go through given values and check if they are in database value array or not, print result
foreach ($values AS $value) {
    if (in_array($value, $db_values)) {
        echo "Value $value exists in database.\r\n";
    }
    else {
        echo "Value $value does not exist in database.\r\n";
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM