Tag: sql

build议SQL数据库devise标签或标签

我听说过几种实现标签的方法, 使用TagID和ItemID之间的映射表(对我来说是有意义的,但它是否缩放?),将固定数量的TagID列添加到ItemID(看起来像一个坏主意),将标签保留在逗号分隔的文本列中疯狂,但可以工作)。 我甚至听到有人推荐一个稀疏matrix,但那么标签名称如何优雅地生长呢? 我是否缺less标签的最佳做法?

MySQL – 获取select的行号

我可以运行一个select语句,并获得行号,如果项目sorting? 我有这样一张桌子: mysql> describe orders; +————-+———————+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +————-+———————+——+—–+———+—————-+ | orderID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | itemID | bigint(20) unsigned | NO | | NULL | | +————-+———————+——+—–+———+—————-+ 然后我可以运行这个查询来获取ID的订单数量: SELECT itemID, COUNT(*) as ordercount FROM orders […]

在一个SQL查询中插入多行?

我有多组数据立即插入,说4行。 我的表有三列: Person , Id和Office 。 INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office"); INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office"); INSERT INTO MyTable VALUES ("Billy", 125, "London Office"); INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office"); 我可以在一个SQL语句中插入所有4行吗?

外键约束可能会导致循环或多个级联path?

当我尝试添加约束到我的表时,我有一个问题。 我得到的错误: 在表'Employee'中引入FOREIGN KEY约束'FK74988DB24B3C886'可能会导致循环或多个级联path。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 我的约束是在Code表和employee表之间。 Code表包含Id , Name , FriendlyName , Type和Value 。 employee有许多参考代码的字段,以便可以为每种types的代码提供参考。 如果被引用的代码被删除,我需要将字段设置为null。 任何想法,我可以做到这一点?

为什么Oracle 9i将空string视为NULL?

我知道它确实认为是NULL ,但是这并不能告诉我为什么会这样。 据我了解的SQL规范,“是不是一样的NULL – 一个是有效的数据,另一个表明没有相同的信息。 随意推测,但请指出是否是这种情况。 如果有来自甲骨文的人可以对此发表评论,那太棒了!

我可以用逗号分隔多列成一列吗?

我试图在我的SQL Server数据库中合并这样的东西: [TicketID],[Person] T0001 Alice T0001 Bob T0002凯瑟琳 T0002道格 T0003伊莱恩 进入这个: [TicketID],[人物] T0001 Alice,Bob T0002凯瑟琳,道格 T0003伊莱恩 我需要在SQL Server和Oracle中都这样做。 我已经findMySQL的函数GROUP_CONCAT ,这正是我在这里所需要的,但MySQL不是这里的一个选项。 编辑:testing台: DECLARE @Tickets TABLE ( [TicketID] char(5) NOT NULL, [Person] nvarchar(15) NOT NULL ) INSERT INTO @Tickets VALUES ('T0001', 'Alice'), ('T0001', 'Bob'), ('T0002', 'Catherine'), ('T0002', 'Doug'), ('T0003', 'Elaine') SELECT * FROM @Tickets

如何在SQL SELECT中执行IF … THEN?

如何在SQL SELECT语句中执行IF … THEN? 例如: SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product

获取两个date之间的date列表

使用标准的mysql函数是有办法写一个查询,将返回两个date之间的天数列表。 例如给定2009-01-01和2009-01-13,它将返回一个列表的值: 2009-01-01 2009-01-02 2009-01-03 2009-01-04 2009-01-05 2009-01-06 2009-01-07 2009-01-08 2009-01-09 2009-01-10 2009-01-11 2009-01-12 2009-01-13 编辑:看来我还没有清楚。 我想生成这个列表。 我有存储在数据库中的值(按date时间),但希望他们被聚合在一个左外部连接的date列表(我期待有些日子这个连接的一些右边的null,并会处理这个)。

NOT EXISTS和NOT IN之间有什么区别,左连接是NULL?

在我看来,你可以在SQL查询中使用NOT EXISTS,NOT IN或LEFT JOIN WHERE IS来做同样的事情。 例如: SELECT a FROM table1 WHERE a NOT IN (SELECT a FROM table2) SELECT a FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.a = table2.a) SELECT a FROM table1 LEFT JOIN table2 ON table1.a = table2.a WHERE table1.a IS NULL 我不确定是否所有的语法正确,但这些是我见过的一般技术。 为什么我会select使用一个呢? 性能不同…? 哪一个是最快/最有效的? (如果取决于实施,我什么时候可以使用每一个?)

在MS Access中pipe理和debuggingSQL查询

MS Accesspipe理原始SQL查询的能力有限:编辑器非常糟糕,没有语法突出显示,它将原始SQL重新格式化为一个长string,并且不能插入注释。 debugging复杂的SQL查询也是一件痛苦的事情:要么将其分割成许多较小的查询,在模式更改时变得难以pipe理,要么最终导致一个巨大的查询,这个查询是debugging和更新的恶梦。 如何在MS Access中pipe理复杂的SQL查询,以及如何debugging它们? 编辑 目前,我主要是使用记事本+ + +一些语法着色和SQL漂亮打印机合理重新格式化来自Access的原始SQL。 使用外部存储库是有用的,但始终存在两个版本不同步的风险,并且在尝试Access中的查询之前,仍然需要删除注释。