[sql]select pr.id_priem , pr.numorder , pr.name , pr.type , pr.priem , pr.n_block , pr.n_counter , pr.n_hit , pr.n_hp , pr.n_krit , pr.n_parry , pr.minlevel , pr.wait , pr.minhp , pr.sduh_proc , pr.sduh , pr.hod , pr.intel , pr.mana , pr.opisan , pr.m_magic1 , pr.m_magic2 , pr.m_magic3 , pr.m_magic4 , pr.m_magic5 , pr.m_magic6 , pr.m_magic7 , pr.need_sil , pr.need_vyn , pr.target ,(select p.id_thing from puton p where p.id_person='14' and p.id_thing=pr.id_priem) as ifa from priem pr ORDER BY pr.type ASC, pr.n_block ASC, pr.n_counter ASC, pr.n_hit ASC, pr.n_hp ASC, pr.n_krit ASC, pr.n_parry ASC, pr.minhp ASC, pr.sduh_proc ASC;[/sql] нужно сделать так, чтобы когда в ifa было какое то значение то ifa становилось TRUE а если пустота то FALSE [sql]if ifa=null then ifa=FALSE else ifa=TRUE[/sql] Не получается=(
Вообще, в стандарте ANSI SQL существует такая конструкция: [sql]... (WHEN ifa IS NULL THEN true ELSE false END) as fld_name [/sql] попробуй
вопрос номера 2. А где его вписать? [sql] select pr.id_priem , pr.numorder , pr.name , pr.type , pr.priem , pr.n_block , pr.n_counter , pr.n_hit , pr.n_hp , pr.n_krit , pr.n_parry , pr.minlevel , pr.wait , pr.minhp , pr.sduh_proc , pr.sduh , pr.hod , pr.intel , pr.mana , pr.opisan , pr.m_magic1 , pr.m_magic2 , pr.m_magic3 , pr.m_magic4 , pr.m_magic5 , pr.m_magic6 , pr.m_magic7 , pr.need_sil , pr.need_vyn , pr.target ,(select p.id_thing from puton p where p.id_person='14' and p.id_thing=pr.id_priem)(WHEN ifa IS NULL THEN true ELSE false END) as ifa from priem pr ORDER BY pr.type ASC, pr.n_block ASC, pr.n_counter ASC, pr.n_hit ASC, pr.n_hp ASC, pr.n_krit ASC, pr.n_parry ASC, pr.minhp ASC, pr.sduh_proc ASC;[/sql] ошибка. [sql] select pr.id_priem , pr.numorder , pr.name , pr.type , pr.priem , pr.n_block , pr.n_counter , pr.n_hit , pr.n_hp , pr.n_krit , pr.n_parry , pr.minlevel , pr.wait , pr.minhp , pr.sduh_proc , pr.sduh , pr.hod , pr.intel , pr.mana , pr.opisan , pr.m_magic1 , pr.m_magic2 , pr.m_magic3 , pr.m_magic4 , pr.m_magic5 , pr.m_magic6 , pr.m_magic7 , pr.need_sil , pr.need_vyn , pr.target ,(select p.id_thing from puton p where p.id_person='14' and p.id_thing=pr.id_priem WHEN ifa IS NULL THEN true ELSE false END) as ifa from priem pr ORDER BY pr.type ASC, pr.n_block ASC, pr.n_counter ASC, pr.n_hit ASC, pr.n_hp ASC, pr.n_krit ASC, pr.n_parry ASC, pr.minhp ASC, pr.sduh_proc ASC;[/sql] тоже ошибка..
[sql]... p.id_thing=pr.id_priem)(WHEN ifa IS ...[/sql] вероятно между скобками не хватает запятой. а так, место правильное для вставки. в следующий раз не поленись ошибку написать.
[sql]select *, (select p.id_thing from puton p where p.id_person='14' and p.id_thing=pr.id_priem), (WHEN used IS NULL THEN true ELSE false END) as used from priem pr ORDER BY pr.type ASC, pr.n_block ASC, pr.n_counter ASC, pr.n_hit ASC, pr.n_hp ASC, pr.n_krit ASC, pr.n_parry ASC, pr.minhp ASC, pr.sduh_proc ASC;[/sql] Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHEN used IS NULL THEN true ELSE false END) as used from priem pr ORDER BY pr.' at line 3 (0 ms taken)
мда, в мускуле эта конструкция немножко по-другому выглядит. попробуй так: [sql](CASE WHEN used IS NULL THEN true ELSE false END) as used[/sql]
[sql] select *, (select p.id_thing from puton p where p.id_person='14' and p.id_thing=pr.id_priem), (CASE WHEN used IS NULL THEN true ELSE false END) as used from priem pr ORDER BY pr.type ASC, pr.n_block ASC, pr.n_counter ASC, pr.n_hit ASC, pr.n_hp ASC, pr.n_krit ASC, pr.n_parry ASC, pr.minhp ASC, pr.sduh_proc ASC;[/sql] Error Code : 1054 Unknown column 'used' in 'field list' (0 ms taken)
блин, откуда ж мне знать, как там это поле назвается, которое ты тестируешь. откуда вообще взялся used? на его месте должно быть поле или выражение, которое ты сравниаешь с NULL
короче так: [sql]select pr.id_priem , pr.numorder , pr.name , pr.type , pr.priem , pr.n_block , pr.n_counter , pr.n_hit , pr.n_hp , pr.n_krit , pr.n_parry , pr.minlevel , pr.wait , pr.minhp , pr.sduh_proc , pr.sduh , pr.hod , pr.intel , pr.mana , pr.opisan , pr.m_magic1 , pr.m_magic2 , pr.m_magic3 , pr.m_magic4 , pr.m_magic5 , pr.m_magic6 , pr.m_magic7 , pr.need_sil , pr.need_vyn , pr.target ,(case when (select p.id_thing from puton p where p.id_person='14' and p.id_thing=pr.id_priem) IS NULL THEN true ELSE false END) as ifa from priem pr ORDER BY pr.type ASC, pr.n_block ASC, pr.n_counter ASC, pr.n_hit ASC, pr.n_hp ASC, pr.n_krit ASC, pr.n_parry ASC, pr.minhp ASC, pr.sduh_proc ASC;[/sql]
ем... лан смотри, был написан запрос [sql]select pr.id_priem, (select p.id_thing from puton p where p.id_person='".$myinfo->id_person."' and p.id_thing=pr.id_priem) as ifa from priem pr[/sql] в результате этого выходила таблица а вот поля которые с таблицах
[sql]select pr.id_priem, (case when (select p.id_thing from puton p where p.id_person='".$myinfo->id_person."' and p.id_thing=pr.id_priem) IS NULL THEN true ELSE false END) as ifa from priem pr[/sql]