- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
$db=Yii::$app->db;
if($db->driverName == 'pgsql') {
$sql ="select a.* from report a inner join code_report b on a.id=b.report_id ";
$sql.=" inner join code c on b.code_id=c.id where cast (c.val as integer ) {$znaki[$sign]} $value group by a.id";//pgsql
}
if($db->driverName == 'mysql') {
$sql ="select a.* from report a inner join code_report b on a.id=b.report_id ";
$sql.=" inner join code c on b.code_id=c.id where convert(c.val, signed) {$znaki[$sign]} $value group by a.id";//mysql
}
формулировка задания то же была бы интересна. если "в минимальное количество символов" и "минимальный оверхед", то тогда сложно кандидата винить.
?
> При чем, не было никаких особых требований по поводу постгрес или чего-то ещё специфического.
может решил похвастаться широким спектром знаний.
меня (как думаю и бормана) больше интересует на кой хер такая загадочная конструкция с `convert(c.val, signed) {$znaki[$sign]} $value`. такое люди от хорошей жизни не пишут.
Угу.
> {$znaki[$sign]}
Это преобразование "less" в "<"? Или операторы тупо пронумерованы?
> $value
А вот за это кандидата можно дропать не глядя :) Отмазки в духе "да оно же заэкранировано/профильтровано" не принимаются.
но отмазка в духе "я еще не опытный" я надеюсь у тебя прокатит?
я всегда негативно относился к бурным наездам на синтакс/этц которое тривиально в код ревью находятся/фиксятся. а вот семантику и глубже критиковать, то что сложнее разглядеть, там все дружно скромно умолкают, потому что все боятся себя идиотами показать.
http://paste.ee/p/8uDYY
...
$query = Report::findBySql($sql);
Ээээ...
...
$sql = "select a.* from ... "
либо не внимательный кандидат, либо спешил.
о. проглядел.
я не знаю как оно на вебе/пыхе, но я часто новичков бью за отсутствие обработки ошибок. как по мне это самая большая проблема у этого кода. (или там какой blanket exception handling есть?)
вообщем, не тормози на одном месте: пытайся из всего кода вытянуть все какие возможно качества человека, негативные и позитивные. и смотри какие из негативных может будущий опыт скомпенсировать.
Ой, значочки какие-то интересные...
Да, дальше он кидает этот запрос в ar
> меня (как думаю и бормана) больше интересует на кой хер такая загадочная конструкция с `convert(c.val, signed) {$znaki[$sign]} $value`.
У меня к этому даже комментариев нет. Сам в замешательстве
вот за это я идиотов и люблю: над ихними выхлопами часто приходится дольше думать чем над перлами гениев. ;-)
тогда вопросов нет
Мускуль не умеет в cast(c.val as integer)?
гугл говорит что те же яйца: дока на cast() тупо ссылается на доку на convert()