Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询中的中断指令?_Mysql_Sql - Fatal编程技术网

MySQL查询中的中断指令?

MySQL查询中的中断指令?,mysql,sql,Mysql,Sql,我想使用MySQL(5.5.41版)执行该查询,该查询在Oracle中运行良好: CLEAR BREAKS; BREAK ON mq; SELECT mq, im, pf, kmct FROM vehicules WHERE mq='Renault' ORDER BY mq; CLEAR BREAKS; 这是Oracle构建的输出,也是我对MySQL的期望: mq | im | pf | kmct ---------+-------------+--

我想使用MySQL(5.5.41版)执行该查询,该查询在Oracle中运行良好:

CLEAR BREAKS;
BREAK ON mq;

SELECT mq, im, pf, kmct 
FROM vehicules 
WHERE mq='Renault' 
ORDER BY mq;

CLEAR BREAKS;
这是Oracle构建的输出,也是我对MySQL的期望:

mq       | im          | pf   | kmct
---------+-------------+------+----------
Renault  | AA-888-AA   | 4    | 3424
---------+-------------+------+----------
         | AA-999-AA   | 2    | 2042
---------+-------------+------+----------
         | BB-888-BB   | 3    | 1580
我得到的错误是:

#1064-您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第1行“CLEAR BREAKS”附近使用的正确语法


在MySQL中似乎没有实现命令“BREAK”。这是真的吗?在这种情况下,有什么方法可以模拟它吗?

MySQL
不支持
BREAK-ON
。AFAIK在ORACLE中是一个报告式命令

要获得所需的输出,必须记住先前读取的行的列值,并与下一行的列中读取的值进行比较。当它们匹配时,可以将空字符串设置为输出,否则保留新值

示例

SELECT 
       ( CASE WHEN @prev_mq != mq THEN @prev_mq := mq ELSE '' END ) AS mq
     , im, pf, kmct 
  FROM vehicules, ( SELECT @prev_mq := '' ) AS initializer
 WHERE mq = 'Renault' 
-- ORDER BY mq;

mq使用
ORDER在这里没有任何意义。因为,当您用空字符串替换重复出现的情况时,
ORDER BY
将导致意外结果。

我认为您正在寻找
LEVE
,请看一看否,我正在寻找一条指令,该指令通过避免单元格中的项目重复,使表成为DBMS的输出表fancyer。在我的例子中,我将得到几行“雷诺”作为所有行的第一个单元格的内容。mq上的中断;在这种情况下,甲骨文将只在[1][1]单元格上添加“雷诺”,并让所有[1][2-n]单元格清空。我将编辑我的帖子以避免任何误解。无论如何,谢谢你的回答。请参阅。这可能会有进一步的帮助。对于操作“”
,我使用了
#1267-非法混合排序规则(utf8\u general\u ci,隐式)和(utf8\u unicode\u ci,隐式),我只需编写
(当@prev\u mq!=mq COLLATE'utf8\u general\u ci'然后@prev\u mq:=mq ELSE''结束时的情况)而不是
。非常感谢你!