この質問はmysqlクエリ自体に関するものではなく、phpから実行する方法に関するものであることに注意してください。より良い用語がないため、私はそれをマルチコマンドクエリと呼びました。次のように、mysqlコマンドラインクライアントとphpmyadminで完全に実行されるクエリがあります。
SET @counter = 0;
SET @category = '';
SELECT
*
FROM
(
SELECT
@counter := IF(press.newscat = @category, @counter+1, 0) AS counter,
@category := press.newscat,
press.*
FROM
(
SELECT
*
FROM press
ORDER BY newscat, added DESC
) press
) press
HAVING counter < 2 limit 50
同じことをphpスクリプトで実行したいのですが、私の人生ではできません。geminiトランザクションを使用してみましたが、1つの結果が得られます...コマンドラインとphpmyadminにより、意図したとおり、より多くの結果が得られます。
私は経験があり、通常のmysql_fetch_object mysql_fetch_arrayビットに精通しています...しかし、このクエリを実行するにはどうすればよいですか?
何かのようなもの
$phpquery = mysql_query("SET @counter = 0;
SET @category = '';
SELECT
*
FROM
(
SELECT
@counter := IF(press.newscat = @category, @counter+1, 0) AS counter,
@category := press.newscat,
press.*
FROM
(
SELECT
*
FROM press
ORDER BY newscat, added DESC
) press
) press
HAVING counter < 2 limit 50")
...動作しません。
私のテーブル構造は単純です:
テーブル名:を押します newscat int(11)はnullではなく、見出しvarchar(255)