Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。



6
左随何处子句
我需要从设置表中检索所有默认设置,而且还需要获取字符设置(如果存在x字符)。 但是此查询仅检索其中character = 1的那些设置,而不是如果用户未设置任何人的默认设置。 SELECT `settings`.*, `character_settings`.`value` FROM (`settings`) LEFT JOIN `character_settings` ON `character_settings`.`setting_id` = `settings`.`id` WHERE `character_settings`.`character_id` = '1' 所以我应该需要这样的东西: array( '0' => array('somekey' => 'keyname', 'value' => 'thevalue'), '1' => array('somekey2' => 'keyname2'), '2' => array('somekey3' => 'keyname3') ) 其中键1和2是默认值,而键0包含带有字符值的默认值。

6
如果任何字段包含NULL,则MySQL CONCAT返回NULL
我的“设备”表中有以下数据 affiliate_name affiliate_location model ip os_type os_version cs1 inter Dell 10.125.103.25 Linux Fedora cs2 inter Dell 10.125.103.26 Linux Fedora cs3 inter Dell 10.125.103.27 NULL NULL cs4 inter Dell 10.125.103.28 NULL NULL 我执行以下查询 SELECT CONCAT(`affiliate_name`,'-',`model`,'-',`ip`,'-',`os_type`,'-',`os_version`) AS device_name FROM devices 返回下面给出的结果 cs1-Dell-10.125.103.25-Linux-Fedora cs2-Dell-10.125.103.26-Linux-Fedora (NULL) (NULL) 如何得出这一点,以便它应该忽略NULL并且结果应该是 cs1-Dell-10.125.103.25-Linux-Fedora cs2-Dell-10.125.103.26-Linux-Fedora cs3-Dell-10.125.103.27- cs4-Dell-10.125.103.28-
162 mysql  sql  null  concat 


15
在SQL Server中修剪前导零的更好技术?
我一直在使用这一段时间: SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col)) 但是最近,我发现包含“ 00000000”之类的所有“ 0”字符的列存在问题,因为它从未找到匹配的非“ 0”字符。 我见过的另一种技术是使用TRIM: REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0') 如果存在嵌入的空格,则会出现问题,因为当空格变成“ 0”时,它们将变成“ 0”。 我试图避免标量UDF。我发现SQL Server 2005中的UDF有很多性能问题。

15
SQL Server中的LIMIT 10..20
我正在尝试做类似的事情: SELECT * FROM table LIMIT 10,20 要么 SELECT * FROM table LIMIT 10 OFFSET 10 但是使用SQL Server 我发现的唯一解决方案看起来过于矫kill过正: SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases ) a WHERE row > 5 and row <= 10 我还发现: SELECT TOP 10 * FROM …

4
SQL,Postgres OID,它们是什么,为什么有用?
我正在查看一些PostgreSQL表的创建,但我偶然发现了这一点: CREATE TABLE ( ... ) WITH ( OIDS = FALSE ); 我阅读了postgres提供的文档,并且了解了OOP中的对象标识符的概念,但仍然不了解, 为什么这样的标识符在数据库中会有用? 使查询更短? 什么时候应该使用?


4
删除ID与另一个表不匹配的SQL行
我正在尝试删除mysql表中的孤立条目。 我有2张桌子,像这样: 表files: | id | .... ------------ | 1 | .... | 2 | .... | 7 | .... | 9 | .... 表blob: | fileid | .... ------------ | 1 | .... | 2 | .... | 3 | .... | 4 | .... | 4 | .... …
160 sql  mysql 

13
如何获取PreparedStatement的SQL?
我有一个带有以下方法签名的常规Java方法: private static ResultSet runSQLResultSet(String sql, Object... queryParams) 它将打开一个连接,PreparedStatement使用sql语句和queryParams可变长度数组中的参数构建一个,运行它,然后将ResultSet(CachedRowSetImpl),关闭连接,然后返回缓存的结果集。 我在记录错误的方法中有异常处理。我将sql语句记录为日志的一部分,因为它对调试非常有帮助。我的问题是,记录String变量会sql记录带有?而不是实际值的模板语句。我想记录实际已执行(或尝试执行)语句。 所以...有什么方法可以获取将由a运行的实际SQL语句PreparedStatement?(没有自己构建它。如果我找不到访问PreparedStatement'sSQL的方法,我可能最终会在自己的catches中最终构建它。)

5
如果MySQL中的字段为null,则返回0
在MySQL中,是否有一种方法可以将“总计”字段设置为零(如果它们为NULL)? 这是我所拥有的: SELECT uo.order_id, uo.order_total, uo.order_status, (SELECT SUM(uop.price * uop.qty) FROM uc_order_products uop WHERE uo.order_id = uop.order_id ) AS products_subtotal, (SELECT SUM(upr.amount) FROM uc_payment_receipts upr WHERE uo.order_id = upr.order_id ) AS payment_received, (SELECT SUM(uoli.amount) FROM uc_order_line_items uoli WHERE uo.order_id = uoli.order_id ) AS line_item_subtotal FROM uc_orders uo WHERE uo.order_status NOT …
160 sql  mysql 

9
MySQL Workbench:如何使连接保持活动状态
错误代码:2013。查询期间与MySQL服务器的连接断开 我正在使用MySQL Workbench。另外,我正在运行一批插入物,总共约1000行(例如,INSERT INTO mytable SELECT * FROM mysource1; INSERT INTO mytable SELECT * FROM mysource2;...mysource3...mysource4乘以1000次)。每批插入都花费相当多的时间,其中一些超过600秒。 如何配置工作台,使其在一夜之间继续工作,而又不停止且不丢失连接?



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.