次のPHPコードがあります:
$result = mysql_query('
set @num := 0, @type := "";
UPDATE orders INNER JOIN (
SELECT id, user_id, created, row_number
FROM
(
SELECT id, user_id, created,
@num := if(@type = user_id, @num + 1, 1) AS row_number,
@type := user_id AS dummy
FROM orders
WHERE status = "queue" AND type="order"
ORDER BY user_id, created asc
) AS grouped_orders
WHERE grouped_orders.row_number <= 2
) m ON orders.id = m.id
SET orders.status = "process", orders.lock_id = "hash";
');
このクエリをスキップ$result = mysql_query('
し');
て PHP MyAdmin パネルにコピー アンド ペーストすると機能しますが、PHP から mysql_query(...) を使用して実行すると、次のエラーが発生します。
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 'UPDATE orders INNER JOIN (
SELECT id, user_id, created, row_number
FROM' at line 2
括弧を使って何かをしようとしましたが、上/下に移動し、1 行に折りたたまれましたが、うまくいきません...
残念ながら、私が取り組んでいるサーバーにはmysqliがありません。