我已经搜索了有关此问题的答案,但找不到任何在线内容。
我在查询时遇到麻烦,该查询从计算机上的mysql shell运行时给出正确的结果集,但是在PHP脚本中从mysqli运行时却给出了不同的结果。
查询为:
SELECT q.pos, q.event_ID, e.name FROM (SELECT @row_number:=CASE WHEN @event_ID=e_ID THEN @row_number+1 ELSE 1 END AS pos, @event_ID:=e_ID as event_ID, u_ID from event_queue ORDER BY e_ID, dateadded) AS q INNER JOIN event AS e ON q.event_ID = ID WHERE q.u_ID=11;
如果这是从mysqli调用的,那么我会得到不正确的位置值(q.pos)为1,如果是从mysql shell运行的话,我会得到正确的值4。我认为这是因为它在其中使用了变量mysql代码,但我在网上找不到任何描述此问题的信息。
有人可以指出我正确的方向吗?
谢谢。
答案 0 :(得分:0)
对我有用的解决方案是从第一个SQL查询的末尾删除分号。
我有:
mysqli_query($dbcon,"SET @row_number=0;");
我将其更改为:
mysqli_query($dbcon,"SET @row_number=0");
成功了。我还需要在另一个mysqli查询中设置@event_ID变量。
谢谢。