作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
创建表语句:
CREATE TABLE `Tovar` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`idPreparat` MEDIUMINT(6) UNSIGNED NULL DEFAULT NULL,
`drugApt` VARCHAR(250) NULL DEFAULT NULL,
`countryApt` VARCHAR(250) NULL DEFAULT NULL,
`manfApt` VARCHAR(250) NULL DEFAULT NULL,
`md5` BINARY(16) NOT NULL,
PRIMARY KEY (`id`),
INDEX `ix_prep` (`idPreparat`),
INDEX `ix_md5` (`md5`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
查询:
SELECT id,
IF(COUNT(Tovar.id)=1,Tovar.drugApt,'') AS `drugApt`,
IF(COUNT(Tovar.id)=1,Tovar.countryApt,'') AS `countryApt`,
IF(COUNT(Tovar.id)=1,Tovar.manfApt,'') AS `manfApt`
FROM Tovar
WHERE Tovar.md5=0x00000000000000000000000000000000
GROUP BY Tovar.idPreparat
如何将三个 IF 替换为一个 IF(COUNT(Tovar.id)=1,,) ?添加我的想法:
CASE COUNT(Tovar.id)>1
WHEN true THEN CONCAT_WS(@drugApt:='Tovar.drugApt',@countryApt='Tovar.countryApt',@manfApt='Tovar.manfApt')
WHEN false THEN CONCAT_WS(@drugApt:='',@countryApt='',@manfApt='')
END
最佳答案
如果我正确理解您的请求,子查询可能有助于实现所需的结果:
SELECT tmp.id,
COALESCE(t.drugApt, '') as drugApt,
COALESCE(t.countryApt, '') as countryApt,
COALESCE(t.manfApt, '') as manfApt
FROM (
SELECT id,
IF(COUNT(id)=1, 1, 0) as cond
FROM Tovar
WHERE md5 = 0x00000000000000000000000000000000
GROUP BY idPreparat
) tmp
LEFT JOIN Tovar t
ON t.id = tmp.id
AND tmp.cond = 1
这有帮助吗?
关于mysql - 把三个中频换成一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35357349/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!