我有这张桌子:
我想选择'inizio_votazione1'e fine_votazione1'之间的行。
我试过这段代码:
$sql = "SELECT codice FROM scansioni WHERE codice BETWEEN 'inizio_votazione1'
AND 'fine_votazione1'";
while ($row = $result->fetch_row()) {
// print_r($row);
$res = $row[0];
echo $res;
echo "<br />";
}
但我看不到结果。
检索所需结果的正确语法是什么? 感谢
答案 0 :(得分:1)
我认为你真的不想使用BETWEEN
。这将基本上寻找在这两者之间按字母顺序排列的值。我认为你可以这样做:
SELECT codice
FROM scansioni
WHERE id > (SELECT MIN(id)
FROM scansioni
WHERE codice IN ('inizio_votazione1', 'fine_votazione1'))
AND id < (SELECT MAX(id)
FROM scansioni
WHERE codice IN ('inizio_votazione1', 'fine_votazione1'))
这可能不是最优雅的解决方案,但是根据我的尝试,它有效。
更好的选择可能是添加一个单独的表来存储每个组的开始和结束id
。然后,您可以为所需的组获取开始和结束id
,然后从scansioni中选择id
s在正确范围内的所有值。
答案 1 :(得分:0)
试试这个:
SELECT codice FROM scansioni WHERE codice between 'inizio_votazione1' abd 'fine_votazione1'
答案 2 :(得分:0)
尝试更改:
$sql = SELECT codice FROM scansioni WHERE codice BETWEEN 'inizio_votazione1'
AND 'fine_votazione1';
要:
$sql = "SELECT codice FROM scansioni WHERE codice BETWEEN 'fine_votazione1'
AND 'inizio_votazione1'";
BETWEEN使用排序顺序来确定结果。
此外,字符串需要在php中引用。
答案 3 :(得分:0)
试试这个: -
SELECT codice FROM `scansioni` WHERE id between (select id from scansioni where codice='inizio_votazione1') and (select id from scansioni where codice='fine_votazione1')