簡體   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