gpt4 book ai didi

mysql - 过滤 MYSQL 价格 - 我有错误 'IF'

转载 作者:行者123 更新时间:2023-11-29 08:37:22 25 4
gpt4 key购买 nike

我在数据库中有2个类型变量:text和decimal(20,2)(我正在编写一个Web应用程序,我将仅限于这两种类型的数据作为文本和数字,以方便运算符(operator)进行基础)。在数字数据类型中,我有时有所有列,其中只有整数部分,当我生成数据时,我有“32324244.00”。我想删除这个“.00”。

我编写了检查列中的条目是否>“.00”的代码

SELECT IF(COUNT(`code`)>0,1,0) 
FROM `table_1`
WHERE substring_index(`code`,'.',-1) >=1
AND substring_index(`code`,'.',-1) <= 99

当有记录时,代码返回“1”,如果没有,则返回“0”;

我想开发这段代码并转换数字以立即在 MySQL 中执行。那么如何才能正常显示一个'1'的个数,像'0'那样做'substring_index(code,'.', 1)'

我有代码:

SELECT IF(
(SELECT IF(COUNT(`kod`)>0,1,0) FROM `table_1`
WHERE substring_index(`kod`,'.',-1) >=1
AND substring_index(`kod`,'.',-1) <= 99)='1',`kod`,substring_index(`kod`,'.',1)
) WHERE `table_1`

此代码不起作用,PhpMyAdmin 返回错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE table_1 LIMIT 0, 30' at line 1

问题出在哪里?

抱歉我的英语:-)

最佳答案

问题是,您没有创建 WHERE 子句,并且没有像这样从表中进行选择:

WHERE column = something 

试试这个:

select count(kod) 
from
(
SELECT IF(COUNT(`kod`) > 0, 1, 0)
FROM `table_1`
WHERE substring_index(`kod`, '.', -1) >= 1
AND substring_index(`kod`, '.', -1) <= 99) = '1',
`kod`,
substring_index(`kod`, '.', 1)
) t .

如果有where子句的话,可以在最后添加; WHERE table_1 = .... 或类似的内容。

<小时/>

编辑:

SELECT IF((SELECT COUNT('kod') 
FROM `table_1`
WHERE substring_index('kod', '.', -1) >= 1
AND substring_index('kod', '.', -1) <= 99
AND COUNT('kod')
) > '0',
'kod',
substring_index('kod', '.', 1)) as myvalue
from `table_1`
<小时/>

编辑2:

试试这个:

SELECT IF((SELECT COUNT(kod) 
FROM `table_1`
WHERE substring_index(kod,'.',-1) >=1
AND substring_index(`kod`,'.',-1) <= 99
having COUNT(kod) > '0'),
`kod`,
substring_index(`kod`,'.',1)
) as myvalue
from `table_1`

LOOK DEMO SQLFIDDLE

旁注:确保您有名为 kod 的列。

关于mysql - 过滤 MYSQL 价格 - 我有错误 'IF',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14897263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com