AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-118985

Jaimin Sutariya's questions

Martin Hope
Jaimin Sutariya
Asked: 2023-03-15 17:37:35 +0800 CST

使用 select 语句和参数参数将数据插入表中的存储过程[重复]

  • 4
这个问题在这里已经有了答案:
如何从 PostgreSQL 中的选择查询将值插入表中? (4 个答案)
12 天前关闭。

我正在创建一个存储过程,它将使用从过程参数和其他表传递的数据填充我的表。

我有一个包含三列的表(cart_id、product、sold_quantity)。现在,我想用存储过程填充此表。在此表中,cart_id将作为存储过程参数传递,而其他两列从另一个表中填充。我想从其他表中插入最新的 10 行,对于所有这些行,它们cart_id都是相同的

首先我试过,

BEGIN

insert into my_table (cart_id, product, sold_quantity) VALUES (cart_id, (Select `product`, `sold_quantity` from other_table limit 10))

END

在这里,cart_id 在过程参数中传递。这显然是行不通的,因为列数不匹配。所以,我试过,

BEGIN

insert into my_table (cart_id, product, sold_quantity) VALUES (cart_id, (Select `product` from other_table limit 10), (Select  `sold_quantity` from other_table limit 10))

END

这返回错误Subquery returns more than 1 row

有什么方法可以用自变量参数和其他表的组合中的数据填充我的表吗?

mysql
  • 1 个回答
  • 33 Views
Martin Hope
Jaimin Sutariya
Asked: 2020-10-13 04:41:06 +0800 CST

MySQL:如何将数据与正则表达式字符串匹配

  • 0

我的表中有一个邮政编码列,其中包含,AB45*等值。RD4*ADB567

现在我想将我的数据与此列匹配。这*意味着以 开头的字符串AB45应与此列匹配。如果我使用AB45 45D它应该获取包含的行AB45*

如果我RD489在我的字段上使用,它应该与RD4*列值匹配。

我可以用什么来实现这个要求?

mysql pattern-matching
  • 1 个回答
  • 39 Views
Martin Hope
Jaimin Sutariya
Asked: 2018-02-10 01:32:45 +0800 CST

根据列值获取最小值行

  • 1

我有下表,用于存储我的产品价格和特价数据。我想从以下数据中获得价格最低的产品。

+------+-------+---------------+-------------------+-----------------+
|  id  | price | special_price | special_from_date | special_to_date |
+------+-------+---------------+-------------------+-----------------+
| 2647 |   299 |           251 | NULL              | NULL            |
| 2648 |   299 |            85 | 2017-12-29        | 2018-02-28      |
| 2649 |   299 |          NULL | 2017-12-29        | 2018-02-28      |
| 2650 |   299 |            55 | 2017-12-29        | 2018-01-01      |
| 2651 |   299 |           179 | 2017-12-29        | NULL            |
+------+-------+---------------+-------------------+-----------------+

这里棘手的部分是我想检查以下条件。

  1. 检查price最低产品价格栏。
  2. 跳过special_price如果NULL
  3. special_price 如果special_from_date和special_to_date是NULL或当前日期不在范围内则跳过
  4. 检查special_price列是否 special_from_date不是NULL并且special_from_date小于当前日期并且special_to_date大于 NULL或等于当前日期。

输出将如下所示。

+------+-------+---------------+-------------------+-----------------+
|  id  | price | special_price | special_from_date | special_to_date |
+------+-------+---------------+-------------------+-----------------+
| 2648 |   299 |            85 | 2017-12-29        | 2018-02-28      |
+------+-------+---------------+-------------------+-----------------+

这是我的表架构。

+------------------------+---------------------+------+-----+---------+-------+
| Field                  | Type                | Null | Key | Default | Extra |
+------------------------+---------------------+------+-----+---------+-------+
| id                     | int(10) unsigned    | NO   | PRI | NULL    |       |
| price                  | decimal(12,4)       | YES  |     | NULL    |       |
| special_price          | decimal(12,4)       | YES  |     | NULL    |       |
| special_from_date      | date                | YES  |     | NULL    |       |
| special_to_date        | date                | YES  |     | NULL    |       |
+------------------------+---------------------+------+-----+---------+-------+
mysql
  • 2 个回答
  • 268 Views
Martin Hope
Jaimin Sutariya
Asked: 2017-07-18 04:55:26 +0800 CST

仅当存在可用行时才应用 INNER JOIN,否则使用 NULL

  • 10
+----+-----------+-----------+-------------+----------+
| id | value_id  | parent_id | dropdown_id | name     |
+----+-----------+-----------+-------------+----------+
|  7 | 14945     |  14944    |         57  |4000      |
|  8 | 14944     |  0        |         56  |bbb       |
|  9 | 14943     |  14940    |         59  |comprable |
| 10 | 14942     |  14939    |         59  |comprable |
| 11 | 14940     |  14931    |         58  |3         |
| 12 | 14939     |  14930    |         58  |2         |
| 13 | 14931     |  14929    |         57  |5000      |
| 14 | 14930     |  14928    |         57  |4000      |
| 15 | 14929     |  0        |         56  |rrr       |
| 16 | 14928     |  0        |         56  |ttt       |
+----+-----------+-----------+-------------+----------+

我有上面的数据表。我使用下面的查询从表中获取数据。

SELECT `d0`.`name` AS `name0`,
       `d1`.`name` AS `name1`,
       `d2`.`name` AS `name2`,
       `d3`.`name` AS `name3`
FROM   `my_table_1` AS `d0`
       INNER JOIN `my_table_1` AS `d1`
               ON d1.parent_id = d0.value_id
       INNER JOIN `my_table_1` AS `d2`
               ON d2.parent_id = d1.value_id
       INNER JOIN `my_table_1` AS `d3`
               ON d3.parent_id = d2.value_id
WHERE  ( d0.dropdown_id = 56 )

在这里,我使用内部连接value_id从它的parent_id.

基本上,它将检查当前记录是否有可用的父级,如果有的话,将获取其数据。如果我的父母数量与记录的数量一样多,我可以获得正确的数据INNER JOIN

就像上面的查询一样,我得到了像

+-------+-------+-------+-----------+
| name0 | name1 | name2 |   name3   |
+-------+-------+-------+-----------+
| ttt   |  4000 |     2 | comprable |
| rrr   |  5000 |     3 | comprable |
+-------+-------+-------+-----------+

在这里我想得到下表

+-------+-------+-------+-----------+
| name0 | name1 | name2 |   name3   |
+-------+-------+-------+-----------+
| ttt   |  4000 |     2 | comprable |
| rrr   |  5000 |     3 | comprable |
| bbb   |  4000 |  NULL | NULL      |
+-------+-------+-------+-----------+

在最后一行,我没有可用d2的d3表格。我也想包含这些数据的NULL价值。

任何帮助表示赞赏。

mysql join
  • 2 个回答
  • 59863 Views
Martin Hope
Jaimin Sutariya
Asked: 2017-03-05 06:20:04 +0800 CST

如何获取与另一列在同一表中的匹配列数?

  • 1

我有一张如下表。

    +----+----------+---------+--------+----------+---------+---------------------+
    | id | box_name | diIndex | diMode | diStatus | status  | last_updated        |
    +----+----------+---------+--------+----------+---------+---------------------+
    |  7 | boxa     |       0 |      0 |        0 |    1    | 2017-03-02 10:49:35 |
    |  8 | boxa     |       1 |      0 |        1 |    0    | 2017-03-02 10:49:35 |
    |  9 | boxa     |       2 |      0 |        0 |    1    | 2017-03-02 10:49:36 |
    | 10 | boxa     |       3 |      0 |        0 |    1    | 2017-03-02 10:49:36 |
    | 11 | boxa     |       4 |      0 |        0 |    0    | 2017-03-02 10:49:36 |
    | 12 | boxa     |       5 |      0 |        0 |    2    | 2017-03-02 10:49:36 |
    | 13 | boxa     |       6 |      0 |        0 |    2    | 2017-03-02 10:49:36 |
    | 14 | boxa     |       7 |      0 |        0 |    3    | 2017-03-02 10:49:36 |
    +----+----------+---------+--------+----------+---------+---------------------+

现在我想在表中添加一个新列,这将使我获得状态列的每个匹配记录的总数,如下所示。

+----+----------+---------+--------+----------+---------+---------------+---------------------+
| id | box_name | diIndex | diMode | diStatus | status  | status count  | last_updated        |
+----+----------+---------+--------+----------+---------+---------------+---------------------+
|  7 | boxa     |       0 |      0 |        0 |    1    |       3       | 2017-03-02 10:49:35 |
|  8 | boxa     |       1 |      0 |        1 |    0    |       2       | 2017-03-02 10:49:35 |
|  9 | boxa     |       2 |      0 |        0 |    1    |       3       | 2017-03-02 10:49:36 |
| 10 | boxa     |       3 |      0 |        0 |    1    |       3       | 2017-03-02 10:49:36 |
| 11 | boxa     |       4 |      0 |        0 |    0    |       2       | 2017-03-02 10:49:36 |
| 12 | boxa     |       5 |      0 |        0 |    2    |       2       | 2017-03-02 10:49:36 |
| 13 | boxa     |       6 |      0 |        0 |    2    |       2       | 2017-03-02 10:49:36 |
| 14 | boxa     |       7 |      0 |        0 |    3    |       1       | 2017-03-02 10:49:36 |
+----+----------+---------+--------+----------+---------++--------------+---------------------+

在这里您可以看到,对于status价值1,有3记录,对于具有原样的status_count列的价值等等。 我怎样才能实现这一点?status13

mysql mysql-5.6
  • 1 个回答
  • 46 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve