如題
之所以這樣判斷只要是用于substring_index(),
select
substring_index(a_name,'|',1) as m
substring_index(a_name,'|',-1) as n
from
tableA
這樣寫,如果找不到'|',m和n都回傳的是a_name
期望是m回傳a_name ,n回傳為空(""),
想到的辦法是加個判斷,但是試了很久都不會,來個大佬吧。

uj5u.com熱心網友回復:
應該用INSTR函式,INSTR有2個引數,使用方法大概如下:INSTR(A,B),如果A包含B,回傳B在A中的位置,如果A不包含B,回傳0。
樣例如下:
SELECT INSTR('123|','|'),INSTR('123','|');
您需要的是這樣的東西:
SELECT IF(INSTR('123|','|')=0,0,1),IF(INSTR('123','|')=0,0,1) ;
或者,以下三行一起執行。
SET @A:='123|';
SET @B:='123';
SELECT IF(INSTR(@A,'|')=0,0,1),IF(INSTR(@B,'|')=0,0,1) ;
uj5u.com熱心網友回復:
期望是m回傳a_name ,n回傳為空("")這個條件是什么,是否包含|。
uj5u.com熱心網友回復:
select case when a_name like '%|%' then 1 else a_name endfrom tableA
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/236774.html
標籤:MySQL
上一篇:linux中的hive中 insert資料問題,在線等
下一篇:聯合查詢的Sql陳述句怎么寫
