$sql=......where table.text % '家族1 OR 家族2 OR 家族3 OR 家族4 OR 家族5';
$sth=$dbh->prepare($sql);
$res=$sth->execute();
上面sql文的where条件在不得更改[table.text % ']和末尾的[']的前提下、还能有其他的写法吗?
$sql=......where table.text % '家族1 OR 家族2 OR 家族3 OR 家族4 OR 家族5';
$sth=$dbh->prepare($sql);
$res=$sth->execute();
上面sql文的where条件在不得更改[table.text % ']和末尾的[']的前提下、还能有其他的写法吗?
在不更改 where 条件中的 table.text % ' 和末尾的 ' 的前提下,有一种可能的写法是使用 IN 运算符。您可以将条件改写为:
$sql = "SELECT * FROM table WHERE table.text % '家族1' OR table.text % '家族2' OR table.text % '家族3' OR table.text % '家族4' OR table.text % '家族5'";
$sth = $dbh->prepare($sql);
$res = $sth->execute();
或者:
$families = ['家族1', '家族2', '家族3', '家族4', '家族5'];
$placeholders = implode(', ', array_fill(0, count($families), '?'));
$sql = "SELECT * FROM table WHERE table.text % IN ($placeholders)";
$sth = $dbh->prepare($sql);
$res = $sth->execute($families);
望采纳。