gpt4 book ai didi

php - 我如何在mysql中查询两个不同的表

转载 作者:可可西里 更新时间:2023-11-01 06:38:18 26 4
gpt4 key购买 nike

如果第一个查询为 NULL,我如何验证两个查询继续第二个查询?

第一个查询:

 SELECT max(logs) as logs,id FROM table1 WHERE 
message NOT LIKE "[ SYSTEM%"

第二个查询:

 SELECT max(logs) as logs,id FROM table2 WHERE 
message LIKE "[ SYSTEM%"

最佳答案

我认为你应该看看你的解释。因为对数据库的查询次数更少 - 更好。在这种情况下,您应该使用联合:

SELECT max(logs) as logs, id, 'table1' type
FROM table1 WHERE message NOT LIKE "[ SYSTEM%"
UNION
SELECT max(logs) as logs, id, 'table2' type
FROM table2 WHERE message LIKE "[ SYSTEM%"
;

按字段类型可以了解从哪个表接收数据。
但是如果你的解释不好,你应该使用单独的查询:

<?php

$dbh = new PDO('mysql:dbname=test;host=127.0.0.1', 'root');

$sth = $dbh->prepare('
SELECT max(logs) as logs, id
FROM table1 WHERE message NOT LIKE :like
');
$sth->bindParam(':like', $like, PDO::PARAM_STR);
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);

if (empty($result)) {
$sth = $dbh->prepare('
SELECT max(logs) as logs, id
FROM table2 WHERE message LIKE :like
');
$sth->bindParam(':like', $like, PDO::PARAM_STR);
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
}

var_export($result);

关于php - 我如何在mysql中查询两个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com