【问题标题】:How to add records to query如何向查询中添加记录
【发布时间】:2014-12-11 18:13:10
【问题描述】:

我有问题。

SELECT * FROM '.PRFX.'sell 
WHERE draft = "0" '.$e_sql.' 
AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") 
AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") 
ORDER BY raised DESC '.$sql_limit;

我想以最少的刷新次数添加 3 条记录;最佳第五名

它们必须是唯一的(所以如果你连接两个 UNION ALL...)

【问题讨论】:

  • 不,我没喝醉。 SELECT DISTINCT * (SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY raised DESC '.$sql_limit;) UNION ALL (SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY refreshes ASC LIMIT 3) 但如何让它发挥作用?
  • 我想出了:#$sql = '(SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY raised DESC '.$sql_limit.') UNION (SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY refreshes ASC LIMIT 3)';,但它会引发重复。
  • 嗯。剥离你的代码。 “PRFX。”没有意义。这段 SQL 代码很难理解(对我来说)为什么要添加 SELECT 请求?

标签: mysql sql-limit


【解决方案1】:

首先,您需要使您的 SQL 更具可读性。像这样的

SELECT * FROM sell
WHERE draft = 0
AND ID NOT IN (SELECT id_ FROM skipped WHERE uid = '0')
AND ID NOT IN (SELECT id_ FROM followed WHERE uid = '0')
ORDER BY raised DESC LIMIT 15

那么,你想要什么?通过单个请求将数据添加到sell 表?这可以通过这样的请求来完成

INSERT INTO sell (key1, key2, keyN)
VALUES 
('aaa', 'bbb', 'ccc'),
('ddd', 'eee', 'fff');
-- and so forth.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 2023-03-31
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2010-09-30
    相关资源
    最近更新 更多