Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

MYSQL order by 跟 where不能同時?

select re_serial,re_user_serial,re_time,re_content,re_name,re_ip from re_discuss where re_id='$discuss_serial' order by re_time

(查詢 序號,回覆者序號,回覆時間,回覆內容,回覆者,回覆者IP 從資料表re_discuss 回覆ID是$discuss_serial時,按照回覆時間排序)

只要where跟order by同時出現時

傳回的資料都是空

為什麼?

有什麼解決辦法嗎??

已更新項目:

@Eason Ryan

我不懂耶

我是用PHP在寫的

我是把MYSQL寫成變數str

所以現在是

$str="SELECT re_serial,re_user_serial,re_time,re_content,re_name,re_ip FROM re_discuss WHERE re_id='\".$discuss_serial.\"' ORDER BY re_time";

可是傳回值一樣是空

2 個已更新項目:

@Eason Ryan

喔喔了解了 我再試試看

@黃金小狐狸

什麼意思?

(找尋所有re_id = '$discuss_serial'的資料)

這樣傳出了所有re_id = 討論編號

(然後再被ORDER BY進行排序)

然後把傳出的所有資料用order by 排序

這樣有錯嗎?

3 個已更新項目:

"SELECT re_serial,re_user_serial,re_time,re_content,re_name,re_ip FROM re_discuss WHERE re_id='".$discuss_serial."' ORDER BY re_time"

我試了這句

可是傳回來還是空

3 個解答

評分
  • 1 0 年前
    最佳解答

    "SELECT re_serial,re_user_serial,re_time,re_content,re_name,re_ip FROM re_discuss WHERE re_id='".$discuss_serial."' ORDER BY re_time"

    看起來應該只是這個問題....

    變數在字串裡應用串的~不要包在裡面~

    2010-03-31 09:28:17 補充:

    怎麼會多加 \ 呢?

    是因為貼上來的關係嗎?

    如果不是就拿掉吧~

    $str="SELECT re_serial,re_user_serial,re_time,re_content,re_name,re_ip FROM re_discuss WHERE re_id='".$discuss_serial."' ORDER BY re_time";

    2010-03-31 23:39:58 補充:

    我想您給的程式範圍再大一點好了...

    這樣能回答得比較清楚~

  • Sam
    Lv 6
    1 0 年前

    「回覆ID是$discuss_serial時,按照回覆時間排序」

    你這句話有問題。

    WHERE不是while條件式。

    我看了半天你的語法並沒有錯。

    既然如此就是你用法上的錯誤。

    WHERE re_id = '$discuss_serial'是指找尋所有re_id = '$discuss_serial'的資料,然後再被ORDER BY進行排序。

    而不是當你的條件符合時,才進行排序。

    2010-03-31 18:15:03 補充:

    你原本認為是怎麼樣的解釋?

    我只是就你原本的字面上來解釋的話你的原來方法就有問題。

    只是。

    就目前來看我看到的解法全部都是和你的問題一樣的東西。

    所以問題就不是語法結構。

    而是你的條件究竟有達成或是未達成什麼。

    2010-03-31 18:18:48 補充:

    純只有where沒有order by時。

    你的功能是正常的嗎?

    以及order by時,是不是有re_time這個欄位?

    只要一個小小的環節錯誤就會造成查無資料。

  • 1 0 年前

    雖然 PHP 用雙引號可以自動轉換變數,但這其實並不是好的寫作習慣,建議還是要習慣用字串連接的方式區隔變數比較好。

還有問題?馬上發問,尋求解答。