Php 使用case将数据插入临时mysql表

Php 使用case将数据插入临时mysql表,php,mysql,mysqli,Php,Mysql,Mysqli,考虑以下示例表: CREATE TABLE items (`id` int, `productName` varchar(7), `price_new` decimal(10,2), `price_used` varchar(55)) ; INSERT INTO items (`id`, `productName`, `price_new`, `price_used`) VALUES (1, 'cup', 10.50, 5.50), (2, 'plate', 9

考虑以下示例表:

CREATE TABLE items
    (`id` int, `productName` varchar(7), `price_new` decimal(10,2), `price_used` varchar(55))
;

INSERT INTO items
    (`id`, `productName`, `price_new`, `price_used`)
VALUES
    (1, 'cup', 10.50, 5.50),
    (2, 'plate', 9.50, 4.50),
    (3, 'mug', 8.50, 3.50)
;
对于一个应用程序,我希望根据用户拥有的内容创建一个临时表。 用户会说一个条件为“新”的“杯子”。(存储在php数组中)

我想要的临时表如下所示:

CREATE TEMPORARY TABLE IF NOT EXISTS tempTable (
         `id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
          `name` varchar(7) NULL,
          `itemCondition` varchar(7) NULL,
          `price` decimal(10,2) NULL
        );
我的问题是: 如果我创建了这个临时表,我如何插入'cup'和'new',MySQL根据itemCondition从items表中选择价格? 伪代码:

Insert: 
(1, 'cup', (
    if itemCondition == 'new' 
    (select Items.price_new where items.productName = 'cup')
    ELSE 
    (select Items.price_used where items.productName = 'cup') 

谢谢你的帮助

问题在于,除非将数据插入到可诱惑的字段中,否则sql将不知道imtemCondition字段的值。值“new”在insert语句本身中作为固定值提供

您需要存储过程根据参数值选择价格,然后将该价格插入临时表,或者您可以使用php实现相同的逻辑

步骤:

  • 提供用户id、名称和项目条件
  • 根据项目条件选择价格
  • 将所有数据插入临时表

  • 谢谢,我想可能是这样的。。。但我希望不是这样。