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-33649

Toskan's questions

Martin Hope
Toskan
Asked: 2019-01-11 09:11:57 +0800 CST

Mysql:按布尔值排序混合到结果中

  • 0

想象有一个工作门户,人们可以在其中发布工作机会

一些工作机会是人们支付的赞助或溢价。我想在搜索结果之间随机显示这些高级优惠。

假设用户搜索 programmer

所以我做

select * 
from jobs 
where description like '%programmer%'
order by created_at

有没有办法在 mysql 中添加随机作业记录 is_premium = 1?

可以说,每 3 个结果,我想忽略搜索词,并添加一个随机记录is_premium

mysql
  • 1 个回答
  • 512 Views
Martin Hope
Toskan
Asked: 2017-12-28 22:43:13 +0800 CST

创建生产-> 暂存流程,如何在执行 mysqldump 时跳过电子邮件地址?

  • 0

我想运行 mysqldump 或基本上,任何可以让我轻松地将 mysql 数据库从一台服务器导出/导入到另一台服务器的东西。

事情是:我想将生产数据导出为暂存/集成/演示数据。这意味着,在导入数据之前,所有用户数据都必须消失。有一次,用户被导入,因为系统运行了一个 cron 作业,服务器开始发送 200,000 封电子邮件。你可以想象?是的是的,只是在导入之前禁用 cronjob,但是意外发生了。因此,导入用户数据然后删除它们不是一种选择。

最佳情况下,我只想忽略某些有电子邮件的列,或者用测试电子邮件字符串替换该电子邮件。

有什么可以帮助我的吗?

php 是我们用于应用程序的,因此任何 php 导入导出工具也是可能的。

mysql mysqldump
  • 2 个回答
  • 166 Views
Martin Hope
Toskan
Asked: 2016-10-01 14:43:03 +0800 CST

具有状态且状态具有日期的订单场景的良好数据库结构

  • 0

所以我们有一张桌子orders

说:

id, product_id, order_state_id,comment

1, 5, 2, 'thisisatest'

我们有一张order_state 桌子

id,name

1, pending processing

2, payment accepted

对于订单的每个订单状态,我必须保存该状态执行时的日期。订单一次只能处于一种状态。

假设我们有一个订单进入payment accepted状态。现在我必须连同日期/时间一起保存。

最干净/最好的方法是什么?

database-design
  • 1 个回答
  • 41 Views
Martin Hope
Toskan
Asked: 2015-11-13 22:11:24 +0800 CST

MySQL order by 相等,返回结果的顺序是什么?

  • 2

我用 mysql Ver 14.14 Distrib 5.5.44, for debian-linux-gnu (x86_64) using readline 6.3

我有按订单列排序的行。

事实证明,很多时候,订单号是相同的,比如 1。但是结果以固定的顺序返回。

SELECT * from mytable ORDER BY fooOrder;

如果 fooOrder 始终为 1,将返回按什么排序的结果?

明明有命令,但不知道是哪一个。

mysql mysql-5.5
  • 2 个回答
  • 7198 Views
Martin Hope
Toskan
Asked: 2015-07-29 16:38:49 +0800 CST

显示每个用户每个任务的工作时间的视图?

  • 1

我写了这个小提琴

CREATE TABLE task
    (`taskid` int, `description` varchar(255),
    PRIMARY KEY (`taskid`))
;

INSERT INTO task
    (`taskid`, `description`)
VALUES
    (1, 'Platform for building enterprise provisioning solutions'),
    (2,'Full-featured access management'),
    (3, 'Robust LDAP server for Java')
;

CREATE TABLE worktime
    (`taskid` int, `user` varchar(7), `startwork` datetime , `endwork` datetime)
;

INSERT INTO worktime
    (`taskid`, `user`, `startwork`, `endwork`)
VALUES
    (1, 'dirk', '2015-07-26 15:19:46', '2015-07-26 15:20:46'),
    (1, 'dirk', '2015-07-26 17:19:46', '2015-07-26 18:11:46'),
    (2, 'dirk', '2011-02-26 11:19:46', '2011-02-26 12:11:46'),
    (2, 'tim', '2011-02-26 11:19:46', '2011-02-26 12:11:46')
;

我想要的是:查找用户在任务上花费的总时间。

例如,对于任务 1 和用户 dirk,这将是任务 1 的 01:01 小时:分钟。

我怎样才能创建这个视图?

mysql
  • 1 个回答
  • 32 Views
Martin Hope
Toskan
Asked: 2014-12-09 09:34:52 +0800 CST

大型 SQL 在必须处理可能为 NULL 的条目时执行速度非常慢(290 行大约需要 2 秒)

  • 0
SELECT version_stamp, 
           pscdesc_id, 
           psc, 
           pscdesctext 
    FROM   pscdesc_history 
    WHERE  ( psc IN (SELECT psc 
                     FROM   pso_history AS c 
                     WHERE  ( c.project = 121 
                               OR c.project IS NULL ) 
                     AND EXISTS (SELECT * FROM   pso_history AS x 
                                        WHERE  x.project = 121 
                                        AND x.pso_id = c.pso_id )) 
              OR psc IS NULL ) 
              AND EXISTS (SELECT * FROM   pscdesc_history AS xyy 
                       WHERE  xyy.psc IN (SELECT psc 
                                          FROM   pso_history AS c 
                                          WHERE  ( c.project = 121 
                                                   OR c.project IS NULL ) 
                                                 AND EXISTS (SELECT * FROM   pso_history AS x 
                                                             WHERE  x.project = 121 
                                                                    AND 
                                                            x.pso_id = c.pso_id)) 
                       AND xyy.pscdesc_id = pscdesc_history.pscdesc_id ) 

也许在 prosa 我正在尝试做的事情:

表中的条目pscdesc_history表示更改。每个条目都是一个变化。

所以记录pscdesc_id可以改变,说pscdesctext被改变了。这给了我们一个新的条目,pscdesc_id但有一个新条目version_stamp,pscdesctext其余的可以是空的。这些条目(至关重要,因为我只想处理一个项目)属于哪个项目,我不知道。我得看看表pso_history。psc是第三个表的外键。

我为什么不加入?由于这是一个充满更改记录的表,因此实际的外键psc可能为空。这同样适用于pso_historyforgein 键project也可能为 null 的情况。

所以我必须获取所有与 121pscdesc_history的记录相关的记录或pso_history与pso_history.project121的记录相关的所有记录pso_history.project。

有什么你可以看到你认为我可以加快速度的地方吗?AND EXISTS用别的东西代替?

mysql performance
  • 1 个回答
  • 51 Views
Martin Hope
Toskan
Asked: 2014-11-27 00:16:29 +0800 CST

简单的左外连接给我留下内连接

  • 0

所以我有一个表,每条记录都是对一个对象的更改。

例如在应用程序中

您在该项目中使用项目 ID 打开您的项目 您编辑对象名称点击保存

生成带有日期时间戳和对象名称更改值的新记录,与您处理的项目 ID 相关

棘手的部分是,project_id 可以为空。object_id 仍然是唯一的。所以我从对象 ID 知道我在哪个项目上。

change 以 object_id 和 datetime 作为复合主键的表。

例如

object_id | datetime            | objectname  | project_id
55        | 2014-03-24 09:55:40 | somevalue 1 | 10
77        | 2014-02-24 09:55:40 | somevalue   | 88
55        | 2014-10-24 09:55:40 | somevalue2  | null
55        | 2014-11-24 09:55:40 | somevalue3  | 10
22        | 2014-12-24 09:55:40 | somevaluex  | 10

我想要得到的是属于项目 10 的所有记录

那将是

object_id | datetime            | objectname  | project_id
55        | 2014-03-24 09:55:40 | somevalue 1 | 10
55        | 2014-10-24 09:55:40 | somevalue2  | null
55        | 2014-11-24 09:55:40 | somevalue3  | 10
22        | 2014-12-24 09:55:40 | somevaluex  | 10

我尝试但失败的是同一张表上的内部连接

我试过这个:

SELECT  * FROM change
LEFT JOIN (SELECT * from change AS x WHERE x.project IS NULL) AS change2
ON change2.object_id = change.object_id 
WHERE change.project = 10

这只为我提供项目 ID 具有空元素的记录,例如 INNER JOIN。我也试过:

SELECT  * FROM change
LEFT JOIN change AS change2
ON change2.object_id = change.object_id 
AND  change2.project is NULL
WHERE change.project = 10

有趣的是,它给出了相同的结果(就像内部连接一样,例如,只有项目为 null 的记录)

我错过了什么?

mysql join
  • 1 个回答
  • 73 Views
Martin Hope
Toskan
Asked: 2014-09-26 16:35:13 +0800 CST

一组日期时间版本化的行,如何构建最新的行

  • 0

我用示例数据创建了这个 SQL fiddle

示例数据是这样的:

--
-- Table structure for table `dogs`
--

CREATE TABLE IF NOT EXISTS `dogs` (
  `version_stamp` datetime NOT NULL,
  `dog_id` int(11) unsigned NOT NULL,
  `dog_name` varchar(30) DEFAULT NULL,
  `dog_color` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`version_stamp`,`dog_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `dogs`
--

INSERT INTO `dogs` (`version_stamp`, `dog_id`, `dog_name`, `dog_color`) VALUES
('2014-09-28 09:30:24', 19849, 'Ruediger', 'black'),
('2014-09-25 02:15:23', 19850, NULL, 'white'),
('2014-09-25 02:16:41', 19850, 'Bello', NULL),
('2014-09-26 02:15:23', 19850, NULL, 'brown'),
('2014-09-27 02:16:41', 19850, 'Dieter', NULL);

我想要的是一行的最新版本,例如dog行。

假设我输入dog_id 19850日期时间戳

2014-09-26 02:15:24

然后我想得到:Bello brown

当我使用不同的时间戳时,说:

2099-12-12 12:12:12

我想得到

迪特尔,棕色

有没有办法在 SQL 中执行此操作?

mysql data-versioning
  • 2 个回答
  • 49 Views
Martin Hope
Toskan
Asked: 2014-07-17 18:50:04 +0800 CST

仅获取连接中最旧的条目

  • 2

所以我有一张桌子bugs

|bugid| 标题|

该表缺少日期列。但是在创建一个新条目时,很可能总是会创建一个新条目,bugnotes并在日期中显示“已创建错误”。

bugnotes:

| 错误注释 | 臭虫 | 日期时间 | 正文 |

我想列出所有错误,bugnotes如果可用,显示最旧条目的日期

mysql join
  • 2 个回答
  • 3293 Views
Martin Hope
Toskan
Asked: 2014-02-01 09:24:38 +0800 CST

在特定记录上使用内部联接?

  • 1

所以我们有 2 张桌子

用户:

id | username | email
1  | testuser | [email protected]
2  | dirk     | [email protected]

数据:

id | data         | username
1  | somedata     | dirk
3  | somemoredata | testuser

我想选择 id 为 3 的数据表的用户名,然后选择他的电子邮件。使用内部连接执行此操作的最佳方法是什么?

mysql
  • 1 个回答
  • 5295 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