SQL рдЬреИрд╕реА рднрд╛рд╖рд╛ SphinxQL "WHERE" рдЦрдВрдб рдореЗрдВ "OR" рдЦрдВрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЬрдм рдЦреЛрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
SELECT * FROM `goods_index` WHERE `price` > 100 OR `price` = 0;
рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рд╕рднреА рд╕рд╛рдорд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдХреАрдордд 100 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдпрд╛ рдпрджрд┐ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдорд╛рдзрд╛рди рд╣реИрдВ: рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
SELECT *, IF(`price` > 100, 1, 0) + IF(`price` = 0, 1, 0) AS `pricematch` FROM `goods_index` WHERE `pricematch` = 1;
рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореВрд▓реНрдп 100 рд╕реЗ рдКрдкрд░ рд╣реИ рдпрд╛ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛
pricematch
рдмрд░рд╛рдмрд░
pricematch
ред
SphinxQL рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдРрд╕реА рдЧрдгрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП "рдпрд╛" рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЕрджреНрдпрддрдиредрдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ
рдЖрд░реНрдЯрд┐рдлрд╝реЗрдХреНрд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рдкрд╛рд░рджрд░реНрд╢реА рдФрд░ рдкрдардиреАрдп рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдЪрдпрди рдХрдерди рдореЗрдВ:
SELECT *, (`price` > 100 OR `price` = 0) AS `pricematch` FROM `goods_index` WHERE `pricematch` > 0;
рдЕрджреНрдпрддрди реиредрдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ BIGINT рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИред Sphinx рдХреЛ config рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
sql_attr_bigint = myattr
рдЙрд╕реА рд╕рдордп, рдРрд╕рд╛ рдЕрдиреБрд░реЛрдз рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЦрд╛рд▓реА рд╕реЗрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
SELECT * FROM index WHERE myattr > 87124599823547;
"рдпрд╛" рд╢рд░реНрдд рдХреЗ рд╕рд╛рде, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реЗрд▓реЗрдХреНрдЯ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА:
SELECT *, ( myattr > 87124599823547 ) AS attrmatch FROM index WHERE attrmatch = 1;