[英]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.