繁体   English   中英

MySQL:了解sql代码

[英]MySQL: understanding sql code

我正在尝试理解一些不再在这个项目中工作的人创建的代码,但是我在理解以下内容时遇到了一些困难。 我认为有一个更有经验的使用mysql将能够帮助我这个。

这里是行代码:

SET price_calc=(REPLACE(@price,',','.') * IF(SUBSTRING(nmu,-1)='I', 1.414819,1.21))";

这个SET是LOAF DATA INFILE语句的一部分,我不理解的部分是这个表达式:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
]
[LINES
    [STARTING BY 'string']
    [TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...] -- this corresponds to the line that uses the expression I'm not understanding

你能帮我理解它的意思吗?

SET price_calc=(REPLACE(@price,',','.') * IF(SUBSTRING(nmu,-1)='I', 1.414819,1.21))";

SET price_calc将设置名为“price_calc”的列的值。 它会将其设置为“=”右侧的计算结果。

这个

(REPLACE(@price,',','.') * IF(SUBSTRING(nmu,-1)='I', 1.414819,1.21))

简化为

first-expression * second-expression

第一个表达是

REPLACE(@price,',','.')

它用@price句点替换逗号。 某些语言环境使用逗号作为小数点; 你的数据库显然没有。

第二个表达是

IF(SUBSTRING(nmu,-1)='I', 1.414819,1.21)

这意味着您将first-expression乘以1.414819或1.21,具体取决于SUBSTRING(nmu,-1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM