MySql:选择两个特定值之间的行:
我有这张桌子: 我想选择'Inalizio_votazione1'和'fine_votazione1'之间的行 我尝试了以下代码:MySql:选择两个特定值之间的行:,mysql,sql,Mysql,Sql,我有这张桌子: 我想选择'Inalizio_votazione1'和'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]; ec
$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 />";
}
但我看不到结果
检索所需结果的正确语法是什么?
谢谢试试这个:
SELECT codice FROM scansioni WHERE codice between 'inizio_votazione1' abd 'fine_votazione1'
尝试更改:
$sql = SELECT codice FROM scansioni WHERE codice BETWEEN 'inizio_votazione1'
AND 'fine_votazione1';
致:
BETWEEN使用排序顺序确定结果
另外,字符串需要在php中引用。我认为您不想在两者之间使用。这将基本上查找介于这两者之间的按字母顺序排列的值。我想你可以这样做:
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。然后,您只需获取所需组的开始和结束ID,然后从scansioni中选择ID在正确范围内的所有值。尝试以下操作:-
SELECT codice FROM `scansioni` WHERE id between (select id from scansioni where codice='inizio_votazione1') and (select id from scansioni where codice='fine_votazione1')
这需要多大的动力?如果总是那些你想要的记录,我会在你的id字段上运行一个中间值:其中id在1和9之间你想要所有这些值之间的行吗?它是动态的,因为是运行时投票,所以我想找到方法来标记每个votation插入一个带有“开始”和“结束”的记录你是对的,但是我写问题的时候打错了,对不起,你是对的。我没有在MySQL中尝试过这个解决方案。我只是修改了我的答案,以便它能适用于MySQL。
SELECT codice FROM `scansioni` WHERE id between (select id from scansioni where codice='inizio_votazione1') and (select id from scansioni where codice='fine_votazione1')