Laravel Query Builder `select (x in (?))Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Query Builder `select (x in (?))

Сообщение Anonymous »

Как сделать такого рода избрать с строителем запросов Laravel: < /p>

Код: Выделить всё

SELECT *, (sector1 IN (...)) AS s1, (sector2 IN (...)) AS s2, (sector3 IN (...)) AS s3
FROM jobs
WHERE (sector1 IN (1, 2) OR sector3 IN (1, 2) OR sector3 IN (1, 2))
ORDER BY (s1 AND s2 AND s3) DESC, (s1 AND s2) DESC, (s1 AND s3) DESC, etc...
Часть where проста с whereIn () , а часть проста с orderbyraw () , но как сделать Select ?

Результаты S1 , s2 и s3 теперь могут Будьте использованы для сортировки: сначала, если все 3 Секторы совпадают, чем если бы секторы 1 и 2 совпадают, чем если, если секторы 1 и 3 совпадают и т. Д. < /p>

(...) < /code> - 1 или больше секторы от пользовательского ввода. Их нужно избежать и вставлено и т. Д., Таким образом, где сектор 1 в (...) < /code>. < /P>

Но как? < /P>

Код: Выделить всё

selectRaw
только немного помогает, потому что он не расширяет массив на несколько заполнителей. Это то, что у меня есть сейчас, но это не может быть: < /p>

Код: Выделить всё

$query->selectRaw("sector1 IN (" . implode(',', array_fill(0, count($filters['sectors']), '?'))  . ") AS s1", $filters['sectors']);
< /code>

Я должен сам расширить заполнители? Должен быть способ позволить застройщику запроса сделать это. Может быть, условия экспрессии 
я не могу найти? У самого строителя, кажется, нет способа расширить?

Код: Выделить всё

whereNotIn
и т. Д. - все явные методы.

Подробнее здесь: https://stackoverflow.com/questions/507 ... -x-in-as-y
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»