草庐IT

多条件

全部标签

MySQL,如何将多条记录连接到一条记录

我正在尝试从wordpress数据库中获取信息;我需要的数据分布在3个表中:wp_em_eventswp_em_locationswp_postmeta简化图:wp_em_events+-----+--------+-----+|id|loc_id|a|+-----+--------+-----+|1|3|foo||2|4|bar|+-----+--------+-----+wp_em_locations+--------+----+|loc_id|b|+--------+----+|3|x||4|y|+--------+----+wp_postmeta+-------+------+

php - 条件更新同一列中的单元格

我需要根据另一列中的ID更新特定列中的单元格。列名是Prod_ID、Lang_ID和Descr:Prod_ID|Lang_ID|Descr--------+---------+------A101|1|TextAA101|2|TextBA101|3|TextC对于一组具有相同Prod_ID的行,我需要将所有后续描述(Descr列)替换为第一行的描述。描述正确的行总是Lang_ID=1。此外,表格可能未按Lang_ID排序。示例:TextA(Lang_ID=1)应该替换TextB和TextC因为行的Prod_IDs匹配。 最佳答案 您

结合 AND/OR 的 MySQL 多对多条件

我的mysql查询有问题,这是一个与Mysqljoinqueryformultiple"tags"(many-to-manyrelationship)thatmatchesALLtags?相关的复杂问题所以我有经典的MN表模式:Item1|Item12|Item2...Category1|Category12|Category23|Category34|Category4...Item_has_category1|1...问题是-如何获取行,其中item具有Category1ORCategory2和类别3?针对一些复杂的filter,一些categories有一个特殊的分组,必须用AN

mysql - 如何根据条件对结果进行分组?

我好几个小时都解决不了这个问题。这是我的tablet1:–––––––––––––––––––––––––––––––––––|id|text|lang|transl_id|–––––––––––––––––––––––––––––––––––|1|first|en|222|–––––––––––––––––––––––––––––––––––|2|second|de|222|–––––––––––––––––––––––––––––––––––|3|jkj|de|234|–––––––––––––––––––––––––––––––––––|4|89080|de|235|––––––

mysql - 如何优化对数据透视表的条件检查?

在recentquestion中,StevieG向我展示了如何使用数据透视表解决我的问题。新问题是我必须检查透视表的某些条件。让我们进行最后的查询:SELECTc.id,GROUP_CONCAT(if(d.name='p1',d.value,NULL))AS'p1',GROUP_CONCAT(if(d.name='p2',d.value,NULL))AS'p2',GROUP_CONCAT(if(d.name='p3',d.value,NULL))AS'p3',GROUP_CONCAT(if(d.name='p4',d.value,NULL))AS'p4',GROUP_CONCAT(if

php - 使用多个 ON 条件加入查询在 codeigniter 中不起作用?

我需要这样的查询SELECT*FROM(`users`)LEFTJOIN`users_phone_numbers`ON`users`.`id`=`users_phone_numbers`.`user_id`LEFTJOIN`phone_number`ON(`phone_number`.`id`=`users_phone_numbers`.`phone_num_id`ANDusers_phone_numbers.is_active=1)WHERE`users`.`id`=56我在codeigniter中有这样的代码$this->db->select('*');$this->db->fro

mysql - 具有多个条件的左连接表

我正在为一个查询而苦苦挣扎。我需要LEFTJOIN两个特定ID匹配但日期不同的表:SELECT*FROMu_dataudJOINu_contractsucONuc.user_id=ud.idLEFTJOINu_transactionsutONut.contract_id=uc.id/*ANDDATE(ut.add_timestamp)>DATE(ud.suspicious)*/WHEREud.suspicious>0ANDud.suspicious!=''ANDud.suspiciousISNOTNULLANDuc._status=6GROUPBYud.id;这为我提供了正确的行数,但

带条件的 MySQL SUM DISTINCT

我需要使用条件语句和DISTINCT值来收集总和使用多个GROUPBY。下面的示例是一个复杂得多的查询的简化版本。因为真正的查询非常大,我需要避免彻底重写查询。数据Contractsidadvertiser_idstatus111221332411关闭的查询SELECTCOUNT(DISTINCTadvertiser_id)ASadvertiser_qty,COUNT(DISTINCTid)AScontract_qty,SUM(IF(status=1,1,0))AScurrent_qty,SUM(IF(status=2,1,0))ASexpired_qty,SUM(IF(status=

mysql - 重复 SQL select 语句直到满足条件

请参见下图:要获取Mazda父类别的ID,我将使用以下内容:SELECT`parent_id`FROM`product_categories`WHERE`category_id`=8ifresultisnotequalto0repeatselectstatement在满足条件之前循环SQLselect语句是否被认为是不好的做法?换一种说法;我应该重新设计产品类别表吗?非常感谢您的建议。 最佳答案 是的,在这种情况下,可能需要添加另一个包含最顶层父项的字段。这当然会引入冗余,因为信息已经在表中可用,但有时这是可以接受的性能权衡。您可以

mysql - 选择符合条件的列名 (MySQL)

我的数据库中有以下结构:id,col_a,col_b,col_c,etc...现在,除了id之外的所有其他列都是boolean类型。比方说col_a=1,col_b=0,col_c=1我正在寻找一种方法来返回列为真(=1)的列的名称,因此在此示例中,返回值应该类似于col_a,col_c将有一个动态数量的列,因为表格经常被更改以添加新列并删除旧列。我到目前为止的函数看起来像这样-它是应该返回列名称字符串的函数...DROPFUNCTIONfn_access;DELIMITER//;CREATEFUNCTIONfn_access(myidINT)RETURNSvarchar(800)DE