亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 中的原始查詢沒有得到任何結果

Laravel 中的原始查詢沒有得到任何結果

PHP
慕蓋茨4494581 2021-11-05 11:00:56
我有一個原始查詢,當我在 phpMyAdmin 中運行此查詢時,它返回 3 個結果,但是當我嘗試使用 Laravel 查詢生成器時,我得到一個空數組。我的查詢SELECT id, reply_text, sending_timeFROM sms_sender_inbox_repliesWHERE phone_numberIN ('+1234567819',  '+19873216154',  '+15984989898')AND id IN (    SELECT MAX( id )     FROM sms_sender_inbox_replies    GROUP BY phone_number)結果:+----+-----------------+---------------------+| id |   reply_text    |    sending_time     |+----+-----------------+---------------------+| 87 | This is a test  | 2019-07-30 08:25:26 || 54 | And another one | 2019-07-29 06:35:11 || 12 | Last test       | 2019-06-16 09:44:26 |+----+-----------------+---------------------+但是當我嘗試使用 Laravel 執行此查詢時,我返回一個空數組 []dump($phone_numbers);// 0 => "+1234567819"// 1 => "+19873216154"// 2 => "+15984989898"$phone_numbers = implode("','", $phone_numbers);dump($phone_numbers);// +1234567819','+19873216154','+15984989898dump("SELECT id, reply_text, sending_time                  FROM sms_sender_inbox_replies                  WHERE phone_number IN ('$phone_numbers')                  AND id IN (                      SELECT MAX(id)                      FROM sms_sender_inbox_replies                      GROUP BY phone_number                  )");// SELECT id, reply_text, sending_time// FROM sms_sender_inbox_replies// WHERE phone_number// IN ('+1234567819',  '+19873216154',  '+15984989898')// AND id IN (//  SELECT MAX( id ) //  FROM sms_sender_inbox_replies//  GROUP BY phone_number// )$replies = DB::connection('second_connection')             ->select("                  SELECT id, reply_text, sending_time                  FROM sms_sender_inbox_replies                  WHERE phone_number IN (':phone_numbers')                  AND id IN (                      SELECT MAX(id)                      FROM sms_sender_inbox_replies                      GROUP BY phone_number                  )             ", ['phone_numbers' => $phone_numbers]);dump($replies);// []
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

當您像這樣綁定它時,您會嘗試將 查找phone_number IN為單個值(而不是 3 個值)。占位符只能是單個值,而不是數組 - 但您可以使用 QueryBuilder 方法解決這個問題,這簡化了綁定。


$phone_numbers = ["+1234567819", "+19873216154", "+15984989898"];


$result = DB::connection('second_connection')

            ->table('sms_sender_inbox_replies')

            ->select('id', 'reply_text', 'sending_time')

            ->whereIn('phone_number', $phone_numbers)

            ->whereIn('id', DB::table('sms_sender_inbox_replies')

                              ->selectRaw('MAX(id)')

                              ->groupBy('phone_number')

                              ->get())

            ->get();


查看完整回答
反對 回復 2021-11-05
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號