お世話になります。表題にあります、表示順に関して質問させてください。
PHPにてMySQLを利用していますが、以下のような構成のテーブルがあります。
news_no news_title news_sort_no(int)
1 りんご 4
2 バナナ 1
3 おでん 0
4 スイカ 2
5 中華丼 0
6 パスタ 3
これをnews_sort_noカラムの番号順に表示させ、0となっているものはランダムで表示させたいのですが、上手くいきません。
SQL文はLEFT JOINを使っており、
ORDER BY news.news_sort_no > 0, ROUND() LIMIT...
0以外のnews_sort_noが先にくるものの、ランダム表示となり、
また
ORDER BY news.news_sort_no > 0 LIMIT...
とすると、、
123456789~としていきたいのですが、
653248971~と、期待した結果は戻ってきません。
初歩的なことかもしれませんが、アドバイス頂けると助かります。
色々試してはいるのですが、試しにと、
ORDER BY news.news_sort_no > 0 LIMIT...
とした際、この時点でまともな表示順となっていないので、テーブルの構成にも問題があるのか?と考えてる次第です。
お忙しい中恐縮ですが、よろしくお願いいたします。
■追記
CRETE文
CREATE TABLE news
(
news_no
int(11) NOT NULL,
news_type
enum('news','video') NOT NULL,
news_category_no
int(11) NOT NULL,,
news_regist_date
datetime NOT NULL,
news_title
varchar(255) NOT NULL,
news_sort_no
int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT文
$query = "INSERT INTO news(news_no, news_type, news_category_no, news_regist_date, news_title) values (0, 'news', '$category_no', '$date', '$title')";
sort_noについて
sort_noはINSERT後に手動で変更するため、上記INSERT時には登録していません。
回答1件
あなたの回答
tips
プレビュー