草庐IT

where-clause

全部标签

mysql - 我如何限制 MySQL 中的各种 WHERE 子句?

假设我有以下MySQL表:id|species------------1|dog2|dog3|dog4|cat5|cat6|fish7|fish8|fish我想获取2只狗、1只猫和1条鱼的ID(它们不必按顺序排列)。例如,{1,2,4,6}将是一个有效的输出。有没有办法在一个SQL查询中做到这一点?据我所知,LIMIT是一个相当简单的运算符,无法做到这一点。也许WHERE可以被操纵?或者多个SQL查询是否是执行此操作的最佳方式? 最佳答案 据我所知,你能做的最好的就是使用UNION合并三个SELECT的结果,例如:SELECTid,

php - Mysql Codeigniter Active Record - 如何执行 where_in 查询并返回正确的结果顺序?

我有一组按特定顺序传递的ID需要保留。我从几个左连接查询与每个ID相关的数据。ID是从搜索中返回的,因此必须保持顺序以使结果有效(否则会使搜索变得毫无意义)。我的代码看起来像;$this->db->where_in('id',$array_of_ordered_ids);例如-$this->db->where_in('id',array(4,5,2,6));会按2,4,5,6的顺序返回结果。我希望它保留顺序并返回结果4,5,2,6。谢谢, 最佳答案 要按数组中的顺序对结果进行排序,您可以执行以下操作:$array_of_ordere

mysql - 使用 WHERE 子句查找经度和纬度距离范围内的 POI

我正在使用以下sql代码找出最接近设置坐标的“所有”点,但我想找出特定的点而不是所有点。当我尝试使用where子句时出现错误并且它不起作用,这就是我目前遇到的问题,因为我只使用一个表来存储所有poi的所有坐标。SET@orig_lat=55.4058;SET@orig_lon=13.7907;SET@dist=10;SELECT*,3956*2*ASIN(SQRT(POWER(SIN((@orig_lat-abs(latitude))*pi()/180/2),2)+COS(@orig_lat*pi()/180)*COS(abs(latitude)*pi()/180)*POWER(SIN

mysql - 优先考虑 SQL WHERE 子句

基本上我想这样做:SELECT*FROM`table`WHEREx='hello'ORx='bye'LIMIT1';我希望它返回1个值,但优先考虑第一个where子句的结果。因此,如果存在某行,其中x列的值为“hello”,它不会返回“bye”值的结果。如果“hello”值不存在,它将返回“bye”值的结果。无法想出一种方法来做到这一点,即使它看起来相当微不足道。有什么想法吗? 最佳答案 一种方法是使用orderby:SELECT*FROM`table`WHEREx='hello'ORx='bye'orderby(casewhenx

java - 使用 where 子句在 hibernate 中选择查询

我有类登录,它有userId、username和password。为了让用户登录,我正在检查username和password并获取userId。如果userId不为零,那么它将指向主页。我正在尝试在hibernate状态下执行此操作。但是我的查询不起作用publicintuserLogin(Loginlogin)throwsMySQLIntegrityConstraintViolationException,SQLException,Exception{Sessionsession=HibernateUtil.getSessionFactory().openSession();int

php - 如何在 laravel 中使用逗号分隔值的列使用 'where'

我正在使用带有laravel框架的php。我想从包含用户ID的表中获取行。这里的问题是用户id是整数值,而column(author)包含多个逗号分隔的整数值。这是示例。DB::table('stories')->where('author','4')->get();author列有值:第1行:2、4、5|第2行:1,3,14|第3行:4,5我会得到第1行和第3行。所以,请帮助我得到正确的行。 最佳答案 你可以像这样使用whereRawDB::table('stories')->whereRaw("find_in_set('4',a

mysql - WHERE 子句中条件的顺序会影响 MySQL 的性能吗?

给定以下查询:select....................from......................where(lower(c01)like?orlower(c02)like?orlower(c5x3_.c01)like?orlower(5x3_.c02)like?)and((lower(c03)like?orlower(c04)like?orlower(c5x3_.c03)like?orlower(5x3_.c04)like?)/*...MultiplefurtherLIKEs...*/andstatus=1;/*statusisanon-nullablevalue

mysql - 拉维尔 |唯一验证 where 子句

我正在尝试验证存在的电子邮件地址的输入,但仅当company_id与随请求传入的company_id相同时才有效。我收到这个错误...SQLSTATE[42S22]:Columnnotfound:1054Unknowncolumn'1'in'whereclause'(SQL:selectcount(*)asaggregatefromcompany_userswhereemail_address=myemail.comand1company_id)我在网上阅读过,方法是将表和验证中的列相关联,这就是我正在做的。这是我当前的代码...required|email|unique:compan

mysql - 哪个在 MySQL where 子句 : YEAR() vs BETWEEN? 中表现更好

我需要从MySQL数据库中查找给定年份中创建的所有记录。有什么方法可以使以下其中一项比另一个慢?WHEREcreate_dateBETWEEN'2009-01-0100:00:00'AND'2009-12-3123:59:59'或WHEREYEAR(create_date)='2009' 最佳答案 这个:WHEREcreate_dateBETWEEN'2009-01-0100:00:00'AND'2009-12-3123:59:59'...效果更好,因为它不会更改create_date列中的数据。这意味着如果create_date上

mysql - SQL WHERE 使用 LIKE 并与字段进行比较

我有这种情况:我想检查特定的词,如果它们与某个词相匹配,我将不得不更新该页面的内容并将其链接到该词。但目前我专注于获取部分内容与特定术语相同的内容页面。这是我需要做的事情的想法,但它不起作用,因为子查询返回多个字段。我想找到WHEREm.module_content与我拥有的任何条款相似,但它应该与所有条款核对。SELECTm.module_termid,t.term_name,m.module_name,m.module_contentFROMmodulesmJOINtermstONm.module_termid=t.term_idWHEREm.module_contentLIKE'