我在MySQL中使用了case语句。
当Loss字段为空时,返回“f.winner”而不是f.method。所以看起来好像MySQL的case语句不能处理这样的空格和空值。
(
CASE f.winner
WHEN :fighter_id THEN "Win"
WHEN NULL OR "0" THEN f.method
ELSE "Loss"
END
) AS result,
有时f.winner和f.method都是空的,我只希望在这些情况下结果返回为空。
我试图编写一个MySQL函数,它从两个值( a,b) ..However返回非空值,我得到一个错误
DELIMITER $$
CREATE FUNCTION GetNonNull(a,b) BEGIN
IF a = NULL THEN RETURN b; ELSE return a; ENDIF; END $$
DELIMITER ;
我知道这个错误:
错误1064 (42000):您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以获得在‘b’附近使用的正确语法,如果a= NULL然后返回b;否则在第1行返回a;ENDIF;END‘
任何帮助都将不胜感激!
我有一个MySQL5.6视图,需要一个联合。我在这里看到堆栈溢出,视图中有一个使用union的服务器错误。解决方案是删除from中的括号。我这样做了,但这是行不通的,并希望有人能帮助我克服这个错误。
我有两个表,订单成功和订单失败。该视图计算该时间段的成功百分比。时间周期为每15米,每小时4次,15,30,45,00次。这是模式,两者是相同的。表中未添加0的计数。根据ifnull语句的不同,null可以是0或100。
+---------+------------+------+-----+---------+-------+ | Field | Type | Null | K
我想在mysql中做一个select请求,但我不知道如何过滤它。我的筛选子句位于列A.present上,包含值0,1,null。我只想排除1值。 我的请求看起来像这样 Select *
from A,
left join B on A.b_id = B.id
where A.present <> 1 但是这个请求不会返回空值。我怎么才能得到它呢?谢谢
我有这个用于网格视图过滤器的MySql存储过程。对于3列,我必须编写这么多的查询组合。我必须对7列使用过滤器,这将使7x7x7x7x7x7x7x7数字组合。有什么更好的方法来实现这一点吗?
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetApprovedData`
(in siteValue varchar(45),
in skillValue varchar(100), in shiftValue varchar(100))
BEGIN
IF siteValue IS NULL and skillValue IS NULL and sh
我有以下MySQL查询:
select
members_categories.category_desc as 'membership_type',
SUM( CASE payment_method WHEN 'Bank Transfer' THEN amount_paid ELSE 0 END ) AS 'Bank Transfer',
SUM( CASE payment_method WHEN 'Cash' THEN amount_paid ELSE 0 END ) AS 'Cash&
在从codeigniter 3.1.0更新到3.1.9后,当前网站的一个模块出现了一些问题,查看它输出的SQL可能是因为order_by部分,但我可以从SQL错误中看到添加了一些到许多`,但是不知道如何修复此输出。
代码块有问题:
interface IssueFlags
{
const FLAG_NONE = 0x000;
const FLAG_PINNED = 0x001; // issue is pinned, will always stick to the top of other issues
const FLAG_PRIVATE =
如果有人能帮我的话,我真的很难进行高级查询
我有一个mysql表,如下所示:
客户(id、appointment_date1、appointment_date2、appointment_date3、appointment_date4)
我正在找一个查询,上面列出了下一个最近的约会
在我执行此查询之前:
SELECT CASE
WHEN (customers.appointment_date1 != '0000-00-00' AND DATE(customers.appointment_date1) >= CURDATE()) THEN customers.app
需要帮助的MySQL查询,似乎找不出如何正确地写这条语句。我试图在insert状态中嵌套一个select,并且也使用ifnull。
INSERT INTO vo (vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES (NULL, '3', (SELECT IFNULL(max(serial_no),1) FROM vo WHERE agreement_id = '3'), CURDATE(), 'Open')
任何帮助都是非常感谢的!谢谢!
编辑:我在mysql中遇到的错误是:
SELECT subjects.name as name , grades.grade as grade, concat(instructors.lastname, ", ", instructors.firstname , " ", left(instructors.middlename, 1),".") as instructor
FROM subjects
JOIN grades
JOIN instructors
WHERE grades.student_id = 1 AND subjects.id = g
下面的语句给出的结果没有任何错误,
select
title as 'unreviewed series',
rating from series
left join reviews
on series.id= reviews.series_id
where rating is null;
但是,以下是一个错误:
select title as 'unreviewed series',
ifnull(avg(rating), null) as 'Average Rating'
from series
left join
与上面一样,我的sql查询不能在.net项目中工作,尽管它可以在adminer/phpmyadmin中工作。这很奇怪。代码如下:
SELECT mh.id AS `id`,
IFNULL(ot.name, it.name) AS name,
IFNULL(ot.name_en, it.name_en) AS name_en
FROM udata.table1 mh
INNER JOIN udata.table2 i ON mh.id= i.id
INNER JOIN adata.table3 it ON i.type = it.id
LEFT JOIN adata.tab
我想知道是否可以这样写一个查询:
进行比较的PHP变量:$column2 = A;$column3 = null;
SELECT * FROM table1
WHERE col1 = 1
IF(col2 IS NOT NULL)
col2 = $column2
AND
IF(col3 IS NOT NULL)
col3 = $column3
其一般思想是将对象数组与MySQL表中定义的动态过滤器相匹配。但是我只想比较那些不是空的列。
有人能帮我或引导我找到更好的方法吗?谢谢
我肯定这件事已经回答了,但找不到。我有以下几点:
select id, one_num, two_num, (IFNULL(one_num,0) + IFNULL(two_num, 0)) as total from posts where total > 0;
它给了我一个错误:
ERROR 1054 (42S22): Unknown column 'total' in 'where clause'
我想我得做一些子查询。但我没运气就试过了。
我正在编写一个带有左联接的MySQL查询,当我删除并对左联接进行条件时,给我28秒的结果,然后它在一秒内工作,谁能告诉我查询中的问题是什么,以及如何修改它?
select *
FROM regist_queue rq
left join appoint ap
on rq.token_number = ap.daily_ticket_no
and rq.LocationId = 15800
and ap.LocationId = 15800
and date(rq.QueueDate) = CURRENT_DATE()
and date(ap.dAppDat
我正在处理一个mysql请求,它将值之和按月计算,包括那些带有空值的值。请求结果只发送第一行,而不执行求和操作。
SELECT SUM(IFNULL(t1.sub_total,0)) AS amount,
am.a_month AS date
FROM (
SELECT ifnull(vn.sub_total,0) as sub_total,
cast(DATE_FORMAT(order_date, '%M') as char) as mdate
FROM orders_new vn
我有一个select,我试图返回一行,即使从select中找不到任何东西也是如此。
下面是select
select
1 as risk_management,
0 as Borrow,
0 as Interest,
IFNULL(d.symbol,'E') as symbol,
IFNULL(d.Abbreviation,
我想知道在mysql中是否可以这样做:
select 5 as a, 1 as b, a + b as c;
问题是因为我有这个:
CONVERT( SUM(ifnull(commission,0.00)) ,DECIMAL(6,2)) as 'commission',
CONVERT( SUM(ifnull(income,0.00)) ,DECIMAL(6,2)) as 'income',
CONVERT( (SUM(ifnull(income,0.00)) - SUM(ifnull(commission,0.00))) ,DECIMAL(6,2)) as
我目前有一个计数器,它将给出数据库中缺少名称信息的条目总数。我还有三个领域(姓名,地址,电话,电子邮件)。我希望计数显示是否有任何信息丢失,而不仅仅是姓名。(下面是我到目前为止的情况)。
我拥有的是这个
select count(ifnull(name,' ')) AS count FROM `customer` WHERE name IN (' ') != ' '
另一个词,例如,如果我有下面的内容,那么计数器就会说3,并且只回音那些缺少字段的
| id | Name | Address | Phone | Email
我有一个显示事件的第三方插件,但是由于某种原因,每当有多天的事件时,它会在当天超过开始日期时停止显示事件,即使结束日期仍然在未来。
MySQL查询似乎试图返回这些值,并在OR后面加上BETWEEN部分,但它从未这样做过。我想我对MySQL还不够熟悉,看不出哪里出了问题。
例如,我希望它在这里返回的行包含:
published=1
dates=2014-04-17
enddates=2014-04-19
SQL:
SELECT a.*
FROM eventlist_events AS a
WHERE a.published = 1
AND a.dates >= '2014-
我编写了一个sql来从Mysql中的两个表中选择记录:
select * from(
select
IFNULL(a.father_id,0) as afi,
IFNULL(b.father_id, 0) as bfi,
IFNULL(a.id,0) AS aid,
IFNULL(b.id,0) AS bid,
a.competitor AS competitor,
IFNULL(a.merchant_order_no,b.merchant_order_no) AS order_no,
IFNULL(a.income,0) AS
我正在使用MySQL,我正在努力简化一个有点复杂的SQL语句。
查询是这样的:
SELECT `provider`.*,`products`.`placement`,`price`.`price`+
IFNULL((SELECT `price` FROM `price` WHERE `handle`=
(SELECT `group` FROM `group_provider` WHERE `provider_id`=`provider`.`id`)),'0') AS `price`
FROM `provider`
LEFT JOIN `products` ON
下面是两个测试表的平方:
tl;dr:为什么使用!= 0 NULL 的SQL查询不包括NULL值?
我被留给了JOINing这两张桌子。我希望看到在tableB.field1中有NULL的行,在tableB.field1中有1的行,但是不包括在tableB.field1中有0的所有行。
我认为这个查询(示例6)应该给出这个结果,但是它没有得到空记录。
SELECT * FROM tableA a
LEFT JOIN tableB b ON a.id = b.join_id
WHERE
b.field1 != 0;
我必须使用这个更长的查询(示例4):
SELECT * FROM tableA
我目前有两个查询,一个显示所有数据(不管时间),另一个考虑时间框架。我试图将这些压缩到一起,并想知道mysql是否为dateTimes提供了充当"allTime“变量的东西,即插入:
select count(*) from table where (color = "red") and (dateMade between "allTime" and "allTime");
将显示表中所有行的颜色为红色的行数。我想出了一个解决方案,就是只使用0000-01-01 :00:00的最低日期和一些大的结束绑定日期,但是如果已经有什么可以解决这个
目前,我正在尝试实现一个餐厅应用程序。在数据库中我有category表和item表,一个类别必须有多个项目,一个项目必须有一个类别,所以这是一个一对多的关系,当一个类别没有任何项目表示项目时,我想要更新一些类别记录如果qty on hand = 0类别status应该更新为"deactivated"这些是我的表 +-------+----------+-------------------+
| CatId | status | catagory |
+-------+----------+-------------------+
| C001 | D
我正在尝试对SQL数据库中的多个字段求和。这些字段称为week1到第13周,因为它们存储每周的结果。我有这在此刻,但它没有输出任何东西,任何帮助将不胜感激。干杯
<?php
if ($resultsRows == 0){
echo '<p> No results have been listed for you yet. </p>';
}
if ($resultsRows > 0){
$qryto