根据字符串匹配

时间:2017-11-09 13:28:35

标签: mysql

我将以下行插入此表中,名为tb_price

+----+---------+---------+
| id | pair_id | price   |
+----+---------+---------+
| 1  |         | 318.18  |
+----+---------+---------+
| 2  |         | 15.24   |
+----+---------+---------+
| 3  |         | 5963.13 |
+----+---------+---------+

当我插入价格时,我希望能够通过查找表pair_id

中的id字段来插入字段tb_pair
+----+----------+-----------+
| id | base_cur | quote_cur |
+----+----------+-----------+
| 1  | BTC      | USD       |
+----+----------+-----------+
| 2  | ETH      | USD       |
+----+----------+-----------+
| 3  | XMR      | USD       |
+----+----------+-----------+

插入tb_price时,我可以使用base_curquote_cur值。使用数据:base_cur = BTCquote_cur = USDprice = 5963.13我希望能够填充tb_price(参见ID 3):

+----+---------+---------+
| id | pair_id | price   |
+----+---------+---------+
| 1  |         | 318.18  |
+----+---------+---------+
| 2  |         | 15.24   |
+----+---------+---------+
| 3  | 1       | 5963.13 |
+----+---------+---------+

我试图在简单的INSERT查询中执行此操作,但我正在努力寻找答案,因为我目前的知识问题太过抽象。我想象某种类型的INNER JOIN,通过在tb_pair上查找找到pair_id。

1 个答案:

答案 0 :(得分:2)

INSERT INTO tb_price ( `pair_id` , `price` ) VALUES ( ( SELECT id FROM tb_pair WHERE `base_cur` = 'ETH' LIMIT 1 ), '10.00' )

您需要将ETH的base_cur配置为您的货币,并将10.00更新为价格。你可能需要添加变量验证,什么不是,但这应该会给你一个很好的起点来完成工作。