我有以下MySQL查詢,我想將其更改爲Laravel的查詢構建器的正確格式。如何使用Laravel Query Builder編寫該MySQL?
SELECT DISTINCT(colors) FROM `cards` ORDER BY LENGTH(colors) DESC
這是我目前有:
table('cards')
->orderBy(LENGTH(colors), 'desc')
->get();
我有以下MySQL查詢,我想將其更改爲Laravel的查詢構建器的正確格式。如何使用Laravel Query Builder編寫該MySQL?
SELECT DISTINCT(colors) FROM `cards` ORDER BY LENGTH(colors) DESC
這是我目前有:
table('cards')
->orderBy(LENGTH(colors), 'desc')
->get();
請注意,你必須使用raw
方法能夠運行SQL功能,如LENGTH()
。
這應該工作:
DB::table('cards')
->select('colors')
->distinct()
->orderByRaw('LENGTH(colors) DESC')
->get();
哪一個更好? orderBy(DB :: raw(...))vs orderByRaw(...)? – rotaercz
結果是一樣的,所以它取決於你更喜歡哪種語法。我更喜歡'orderByRaw',因爲它會導致嵌套的括號更少'()' – lukasgeiter
您的答案大部分是正確的。你必須添加 - >選擇('顏色')。謝謝! – rotaercz
我會想象'長度(顏色)'需要加引號的,因爲它是一個字符串,而不是一個PHP函數? – halfer
@halfer:是的,我認爲你是對的。 – rotaercz