php - 如何实现 SQL 语句来创建 either/or 功能

标签 php sql

SQL语句题。假设我的迷你表中有以下内容。假设表格是“图像”。

ID  |  file_name   |fruit_type | 
================================
1   |     ex.jpg   |  apple    | 
2   |     am.png   |  apple    | 
3   |     pl.jpeg  |  orange   |  
4   |      e.png   |  orange   | 
5   |     yep.png  |  apple    |

好的。所以当我调用它时,我希望它拉出两张图片,每张都应该是从 fruit_type 中随机选择的。所以苹果应该只用苹果来摘。橘子只能和橘子一起摘。不应该有这两种类型的组合。

这就是它崩溃的地方。假设我运行的代码是这样的:

$query="SELECT * FROM images WHERE fruit_type='apple' 
OR fruit_type='orange' ORDER BY RAND() LIMIT 0,2";

这将返回两个随机选择,就像我想要的那样。但是,这会从该列中同时捕获苹果和橙子类型。

我一直在尝试确定一个 SQL 语句,允许它选择苹果或橘子,但不能同时选择两者。我做空了,所以我转向你们所有人。

最佳答案

您可以创建两个查询,第一个查询苹果,第二个查询橙子,然后随机选择苹果和随机橙子,然后使用 UNION ALL 子句连接它们。

关于php - 如何实现 SQL 语句来创建 either/or 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208284/

相关文章:

php - Adodb,转义引号?

sql - PL/pgSQL : finding all groups person belongs to (also indirectly)

php - 我将如何在 Laravel Eloquent 中编写这个 MySQL 查询?

javascript - PHP SERVER 属性在 javascript 下的函数中不起作用?

php - 无法在 CodeIgniter 中向 PHP 数组添加数据

php - 限制最大高度的文本

c# - 是否可以使用 TransactionScope 回滚已提交的数据?

mysql - SQL 查询更新一系列字段 - MySQL 表

mysql - 为什么 "M"出现在Clojure MySQL查询结果中

php - MySQL:城市、州、国家搜索