繁体   English   中英

Sql排除一些行

[英]Sql exclude some rows

我有一个带有通道 (227) 的 MySQL 表,其中包含此字段id, gener_id, channel_number, title ...我使用此 sql 查询创建了一个包含所有通道的页面

$result = $pdo->query("SELECT * FROM channels ORDER BY channel_number");

但我想排除 181 到 227 之间的频道,以便不在此表中显示。 我怎样才能做到这一点?

这是我的整个代码

$result = $pdo->query("SELECT * FROM channels ORDER BY channel_number");

 echo '<div class="table-responsive">';    
echo '<table class="table">';
    $i = 1; 
    while($row = $result->fetch()){

        if ($i==0){
            echo '<tr>';
        }

        $channel_name = $row['title'];
        $channel_number = $row['channel_number'];
        $channal_icon = $row['icon_url'];
        echo "<td>";
        echo $channel_number, '<br> ', $channel_name;
        echo '<br>'.'<img src="www.website.com'.$channal_icon.'" style="width:50px; height:50px; background-color: grey;" />'.'</br>';   
        echo "</td>";
        if ($i>3){
            $i=0;
            echo '</tr>';
        };  
        $i++;
    }
    echo '</table>';
echo '</div>';   

更新我已经尝试过 thist 语法

SELECT * FROM `channels` ORDER BY `channel_number`
EXCEPT
SELECT   `channel_number`
FROM     `channels`
WHERE    `channel_number` = '181'

但是 MySQL 给我一个错误#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXCEPT #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXCEPT

下面应该做你想做的。 它正在过滤掉您不想显示的 channel_number 范围。

SELECT *
FROM channels 
WHERE channel_number not between 181 and 227 
ORDER BY channel_number

您可以使用WHERE NOT BETWEEN ,包括 181 和 227。

SELECT * 
FROM channels 
WHERE channel_number NOT BETWEEN 181 AND 227
ORDER BY channel_number 

希望这可以帮助。

SELECT * FROM `channels` WHERE `channel_number` NOT BETWEEN 181 AND 227 ORDER BY `channel_number`

暂无
暂无

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

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