我有一个select语句,我想像这样选择条件
IFNULL(field_a,field_a,feild_b)
Run Code Online (Sandbox Code Playgroud)
这样它就检查字段a如果a为null,那么select将是字段b
那可能吗 ?
我有一个查询,其中包含一个子查询,就像这样
IFNULL((SELECT id FROM mytable WHERE id = 1), 'No')
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我想在成功时返回字符串'Yes'而不是行的实际id.
有没有办法覆盖它返回的值?
谢谢.
这两个MySQL函数做同样的事情:
IFNULL(column_name, 'test') = 'test'
Run Code Online (Sandbox Code Playgroud)
要么
NULLIF(column_name, 'test') IS NULL
Run Code Online (Sandbox Code Playgroud)
哪一个更有效率?
IFNULL()Postgres 中SQLite的等价物是什么?
我必须跟随查询(Ruby中的sqlite):
SELECT ifnull(max(code_id) + 1, 1)
FROM configentries
WHERE configtable_id = ...
Run Code Online (Sandbox Code Playgroud)
如果我想要与PostgreSQL相同的结果,这应该怎么样?
描述:
我的陈述应该用'no name'替换每个空的 title_column ,但它不会:
SELECT
COALESCE(main_table.title_column, 'no name') AS title
FROM main_table;
Run Code Online (Sandbox Code Playgroud)
IFNULL()的行为方式相同.
我究竟做错了什么 ?
好的,我有这个代码:
SELECT
IFNULL(s2.id,s1.id) AS effectiveID,
IFNULL(s2.status, s1.status) AS effectiveStatus,
IFNULL(s2.user_id, s1.user_id) as effectiveUser,
IFNULL(s2.likes_count, s1.likes_count) as effectiveLikesCount
FROM statuses AS s1
LEFT JOIN statuses AS s2 ON s2.id = s1.shared_from_id
WHERE s1.user_id = 4310
ORDER BY effectiveID DESC
LIMIT 15
Run Code Online (Sandbox Code Playgroud)
我需要将它重写为querybuilder.那样的东西?
$fields = array('IFNULL(s2.id,s1.id) AS effectiveID','IFNULL(s2.status, s1.status) AS effectiveStatus', 'IFNULL(s2.user_id, s1.user_id) as effectiveUser','IFNULL(s2.likes_count, s1.likes_count) as effectiveLikesCount');
$qb=$this->_em->createQueryBuilder()
->select($fields)
->from('WallBundle:Status','s1')
->addSelect('u')
->where('s1.user = :user')
->andWhere('s1.admin_status = false')
->andWhere('s1.typ_statusu != :group')
->setParameter('user', $user)
->setParameter('group', 'group')
->leftJoin('WallBundle:Status','s2', 'WITH', 's2.id=s1.shared_from_id')
->innerJoin('s1.user', 'u')
->orderBy('s1.time', 'DESC') …Run Code Online (Sandbox Code Playgroud) 我试图使用IFNULL来替换ROLLUP返回的NULL字段的小计和总计,但它似乎没有工作.
查询:
select IFNULL(usergroups.name, 'GROUP') AS DEALER,
IFNULL(users.name, 'TOTAL') AS SERVICE_ADVISOR,
COUNT(DISTINCT vcrs.uid) AS COMPLETED,
..........
..........
and vcrs.vcrSubStatus = 4
group by DEALER, SERVICE_ADVISOR with ROLLUP;
Run Code Online (Sandbox Code Playgroud)
输出:
DEALER SERVICE_ADVISOR COMPLETED IDENTIFIED AUTHORISED
Aston Martin Chris 3 664.56 0
Aston Martin Graham 6 0 0
Aston Martin (NULL) 15 664.56 0
Bentley Sukraj 1 0 0
Bentley Terry 4 0 0
Bentley (NULL) 5 0 0
Jaguar Emma 10 2448 1224
Jaguar Paul 1 0 0
Jaguar Simon 7 2754 …Run Code Online (Sandbox Code Playgroud) 我有一个表,其中一个字段包含一个整数或NULL.
parent_id
2
4
6
NULL
NULL
45
2
Run Code Online (Sandbox Code Playgroud)
我将如何添加一个IFNULL语句,以便ans_count填充0而不是NULL?
这是我的SQL代码:
...
(SELECT parent_id AS pid, COUNT(*) AS ans_count
FROM qa
GROUP BY parent_id) AS n
Run Code Online (Sandbox Code Playgroud)
UPDATE
完整的SQL下面 - 感谢您的耐心等待.
SELECT *
FROM qa
JOIN user_profiles
ON user_id = author_id
LEFT JOIN (SELECT cm_id,
cm_author_id,
id_fk,
cm_text,
cm_timestamp,
first_name AS cm_first_name,
last_name AS cm_last_name,
facebook_id AS cm_fb_id,
picture AS cm_picture
FROM cm
JOIN user_profiles
ON user_id = cm_author_id) AS c
ON id …Run Code Online (Sandbox Code Playgroud) 我有mysql查询,如果子查询没有返回结果或null值,我需要在WHERE子句中替换值.
价格查询按要求运行
运行成功
SELECT `prices` FROM `pricing`
WHERE (3 BETWEEN `from_unit` AND `to_unit`)
AND `type` = 1
AND `id_pricing` IN
(
SELECT v1.`id_pricing` FROM `values` AS v1
INNER JOIN `values` AS v2 ON v1.`id_pricing` = v2.`id_pricing`
INNER JOIN `values` AS v3 ON v1.`id_pricing` = v3.`id_pricing`
INNER JOIN `values` AS v4 ON v1.`id_pricing` = v4.`id_pricing`
WHERE v1.`id_attribute` = 1 AND v1.`id_value` = 1
AND v2.`id_attribute` = 7 AND v2.`id_value` = 63
AND v3.`id_attribute` = 8 AND v3.`id_value` = 87
AND v4.`id_attribute` …Run Code Online (Sandbox Code Playgroud) 有没有办法为所有为空的返回值设置默认值,特别是在 MySql 中?
代替
SELECT
IFNULL(foo, 0),
IFNULL(bar, 0),
IFNULL(baz, 0)
FROM table
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情:
SELECT IFNULL(*, 0)
FROM table
// this does not work, but I'm looking for something like it
Run Code Online (Sandbox Code Playgroud)