select 列1... from 表名 where 条件
SELECT ename, sal
FROM emp
WHERE sal >= 10000;
SELECT ename, deptno
FROM emp
WHERE deptno = 20;
SELECT *
FROM emp
WHERE hiredate >= '2005-01-01';
SELECT *
FROM emp
WHERE job != '文员';
SELECT '赵' < '钱'; # 1
SELECT *
FROM emp
WHERE comm = NULL; # 1条数据都得不到
要和null值比较,请用 <=> 和 <>
SELECT *
FROM emp
WHERE COMM <=> NULL;
&& 与:只有 1 && 1 结果才为1
|| 或:只有 0 || 0 结果才为0
! 非:表示取反,原来为1 现在为0,原来为0,现在为1
XOR 异或:有且仅有1个条件为真时,结果才为真
SELECT *
FROM emp
WHERE sal > 10000 && job = '销售员';
SELECT *
FROM emp
WHERE job = '经理' || job = '分析师';
&& 的优先级比 || 高,就要先计算与,再计算或
所以下面这条语句没有筛选到 job = '经理'的工资情况
先执行 job = '分析师' && sal > 25000得到结果A
在计算 job = '经理' || A
SELECT *
FROM emp
WHERE job = '经理' || job = '分析师' && sal > 25000;
SELECT *
FROM emp
WHERE (job = '经理' || job = '分析师') && sal > 25000;
select 列1... from 表名 where 列名 like '模糊条件'
SELECT * FROM emp WHERE ename LIKE '刘_'
SELECT * FROM emp WHERE ename LIKE '刘__'
SELECT * FROM emp WHERE ename LIKE '刘%'
SELECT * FROM emp WHERE ename LIKE '%德'
SELECT *
FROM emp
WHERE ename LIKE '%#_%' ESCAPE '#';
between and 用于查询数值在一个连续区间内的数据
从emp表中查询出工资在15000到30000之间的员工信息
SELECT *
FROM emp
WHERE sal >= 15000 && sal <= 30000;
SELECT *
FROM emp
WHERE sal BETWEEN 15000 AND 30000;
SELECT *
FROM emp
WHERE hiredate BETWEEN '2002-01-01' AND '2007-12-31';
in 用于查询数字在一个不连续的集合中的数据
从emp表中,部门编号为10,20,30的员工信息
SELECT *
FROM emp
WHERE deptno in(10,20,30);
如果使用between and, 万一有个部门编号为15,也要被查出来
查询出公司里面的文员、经理和销售员
SELECT *
FROM emp
WHERE job in('文员', '经理', '销售员');
is null 用来判断数据是否为空
SELECT *
FROM emp
WHERE COMM IS NULL;
SELECT *
FROM emp
WHERE comm <=> null;
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden
我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr
我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin
我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano
我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca
我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时
在添加一些空格以使代码更具可读性时(与上面的代码对齐),我遇到了这个:classCdefx42endendm=C.new现在这将给出“错误数量的参数”:m.x*m.x这将给出“语法错误,意外的tSTAR,期待$end”:2/m.x*m.x这里的解析器到底发生了什么?我使用Ruby1.9.2和2.1.5进行了测试。 最佳答案 *用于运算符(42*42)和参数解包(myfun*[42,42])。当你这样做时:m.x*m.x2/m.x*m.xRuby将此解释为参数解包,而不是*运算符(即乘法)。如果您不熟悉它,参数解包(有时也称为“spl
我的Gallery模型中有以下查询:media_items.includes(:photo,:video).rank(:position_in_gallery)我的图库模型有_许多媒体项,每个都有一个照片或视频关联。到目前为止,一切正常。它返回所有media_items包括它们的photo或video关联,由media_item的position_in_gallery属性排序。但是我现在需要将此查询返回的照片限制为仅具有is_processing属性的照片,即nil。是否可以进行相同的查询,但条件是返回的照片等同于:.where(photo:'photo.is_processingIS
除了可访问性标准不鼓励使用这一事实指向当前页面的链接,我应该怎么做重构以下View代码?#navigation%ul.tabbed-ifcurrent_page?(new_profile_path)%li{:class=>"current_page_item"}=link_tot("new_profile"),new_profile_path-else%li=link_tot("new_profile"),new_profile_path-ifcurrent_page?(profiles_path)%li{:class=>"current_page_item"}=link_tot("p