【问题标题】:How do I combine a SELECT + WHERE query with an INSERT query?如何将 SELECT + WHERE 查询与 INSERT 查询结合使用?
【发布时间】:2012-05-24 11:22:41
【问题描述】:

我想结合以下两个查询,谁能告诉我如何做到这一点? (INSERT 查询应仅在 SELECT 查询有结果时运行)

查询 1

INSERT IGNORE INTO senders(
sender_id,
telephone,
)
VALUES ( 1, 0723355888)

查询 2

SELECT student_name
FROM students
WHERE student_id =1

【问题讨论】:

  • 如果你不将它插入到'senders'中,为什么你要选择'student_name'。??

标签: mysql select insert where


【解决方案1】:
INSERT INTO senders (sender_id, telephone)
SELECT student_id, student_telephone FROM students
WHERE student_id = 1
LIMIT 1

或者如果电话不是学生表的一部分,则对其进行硬编码: 这是有效的,因为如果查询 0 行,则根本不执行插入。

INSERT INTO senders (sender_id, telephone)
SELECT 1, 0723355888 FROM students
WHERE student_id = 1
LIMIT 1

【讨论】:

    【解决方案2】:

    试试这个:

    INSERT IGNORE INTO senders( sender_id, telephone) 
    SELECT 1 as sender_id, 0723355888 as telephone 
    FROM students WHERE student_id =1
    

    【讨论】:

      【解决方案3】:

      尝试使用此查询 -

      INSERT IGNORE INTO senders (sender_id, telephone)  
      SELECT student_id as sender_id, telephone
      FROM students
      WHERE student_id=1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-26
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 2022-01-14
        • 2020-02-14
        • 1970-01-01
        相关资源
        最近更新 更多