改进mysql查询以搜索化学反应

时间:2016-04-29 08:41:50

标签: mysql

我有2个表1- tbl_reaction,如下所示:

╔════╦═══════════╦════════════╦═════════╗
║ id ║ condition ║ phenomenon ║  infor  ║
╠════╬═══════════╬════════════╬═════════╣
║  1 ║ abcd123   ║ abcd123    ║ abcd123 ║
║  2 ║ wer       ║ wer        ║ wer     ║
╚════╩═══════════╩════════════╩═════════╝

2- tbl_reaction_item像这样:

╔══════╦═══════════╦═════════╦═════╗
║ reid ║ substance ║  type   ║ num ║
╠══════╬═══════════╬═════════╬═════╣
║    1 ║ H2        ║ income  ║   2 ║
║    1 ║ O2        ║ income  ║   1 ║
║    1 ║ H2O       ║ outcome ║   2 ║
╚══════╩═══════════╩═════════╩═════╝

显示反应:

  

收入+收入=结果

     

2H2 + O2 => 2H2O

我使用此查询:

SELECT CONCAT(GROUP_CONCAT(CASE WHEN type='income' THEN CONCAT(IF(num=1, '', num),substance) END SEPARATOR ' + '), ' => ',
         GROUP_CONCAT(CASE WHEN type='outcome' THEN CONCAT(IF(num=1, '', num),substance) END SEPARATOR ' + '))
         AS reaction
FROM tbl_reaction_item
GROUP BY reid;

但现在我想使用此查询来搜索反应中的物质

0 个答案:

没有答案