[英]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.