Tag: sql

Rails 4 LIKE查询 – ActiveRecord添加引号

我正在尝试像这样做一个类似的查询 def self.search(search, page = 1 ) paginate :per_page => 5, :page => page, :conditions => ["name LIKE '%?%' OR postal_code like '%?%'", search, search], order => 'name' end 但是当它运行的时候,就是添加引起sql语句出现的引号 SELECT COUNT(*) FROM "schools" WHERE (name LIKE '%'havard'%' OR postal_code like '%'havard'%')): 所以你可以看到我的问题。 我使用的Rails 4和Postgres 9这两个我从来没有用过,所以不知道如果它和一个activerecord的事情或可能postgres的事情。 我如何设置这个,所以我喜欢在结束查询中的'%my_search%' ?

一般来说,存储过程比现代RDBMS的内联语句更高效?

传统观点认为存储过程总是比较快。 所以,因为他们总是更快,使用他们所有的时间 。 我很确定这是以一度历史背景为基础的。 现在,我不主张存储过程是不需要的,但是我想知道什么情况下存储过程在MySql,SqlServer,Oracle等现代数据库中是必需的。 所有通过存储过程访问是矫枉过正的吗?

我什么时候可以使用XML而不是SQL?

几年来,我一直在研究数据库驱动的Web应用程序,最近又开始了一个涉及支持XML的CMS的项目。 这使我想到了一般的XML / XSLT的用法,以及在什么情况下它比我一直使用的方法更有用,它将所有的数据存储在(My)SQL数据库中,然后使用PHP / Python的/等。 根据需要在networking上使用它。 显然,我不是“得到”在这里..任何人都可以给我的例子,应用程序的数据存储在XML文件,而不是在数据库将是可取的?

对所有基于文本的字段使用genericsvarchar(255)是否有缺点?

我有一个contacts表,其中包含postcode , first name , last name , town , country , phone number等字段,所有这些都被定义为VARCHAR(255)即使这些字段没有接近255个字符。 (如果你想知道,这是因为Ruby on Rails迁移默认情况下将String字段映射到VARCHAR(255) ,我从来没有打算覆盖它)。 由于VARCHAR只会存储字段的实际字符数(以及字段长度),所以使用VARCHAR(16)不是VARCHAR(255)有什么明显的优势(性能或其他VARCHAR(255) ? 另外,这些领域大部分都有索引。 字段上的较大VARCHAR大小是否会影响索引的大小或性能? 仅供参考我正在使用MySQL 5。

如何在NULL列上创build唯一索引?

我正在使用SQL Server 2005.我想约束列中的值是唯一的,同时允许NULLS。 我目前的解决scheme涉及一个独特的索引,如下所示: CREATE VIEW vw_unq WITH SCHEMABINDING AS SELECT Column1 FROM MyTable WHERE Column1 IS NOT NULL CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1) 任何更好的想法?

从其他表中删除ID不匹配的sql行

我试图删除mysql表中的孤立条目。 我有这样的2个表: 表格files : | id | …. ———— | 1 | …. | 2 | …. | 7 | …. | 9 | …. 表格blob : | fileid | …. ———— | 1 | …. | 2 | …. | 3 | …. | 4 | …. | 4 | …. | 4 | […]

TSQL中的COALESCE函数

有人可以解释TSQL中的COALESCE函数是如何工作的吗? 语法如下 COALESCE(x,y) 这个函数的MSDN文档非常含糊

sql和GROUP BY和ORDER BY有什么不同?

你什么时候使用一般? 例如,非常鼓励! 我指的是如此MySql,但不能想象在另一个DBMS上的概念是不同的

从Collection / Array / List中创build逗号分隔string的最复杂的方法?

在我使用数据库的过程中,我注意到我写了查询string,在这个string中,我必须在list / array / collection的where子句中join一些限制。 应该是这样的: select * from customer where customer.id in (34, 26, …, 2); 你可以简化这个问题,把这个问题简化为你有string集合的问题,并且想用一个string创build一个以逗号分隔的string列表。 我迄今为止使用的方法是这样的: String result = ""; boolean first = true; for(String string : collectionOfStrings) { if(first) { result+=string; first=false; } else { result+=","+string; } } 但是,这是你可以看到非常丑陋的。 你不能看到第一次看到什么发生,特别是当构造的string(如每个SQL查询)变得越来越复杂。 你(更)优雅的方式是什么?

SQL Server':setvar'错误

我正在尝试在T-SQL中创build一些脚本variables,如下所示: /* Deployment script for MesProduction_Preloaded_KLM_MesSap */ GO SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; SET NUMERIC_ROUNDABORT OFF; GO :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap" 但是,当我运行这个时,我得到一个错误,说明'不正确的语法附近':'。 我究竟做错了什么?