到目前爲止我的代碼是:顯示員工姓名誰擁有2L的,SQL查詢
select ename from emp where ename =ll%;
的問題是,顯示誰擁有2LS在他們的名字,並在部門30或他們的經理所有僱員的所有名稱是7782;
我想我的代碼,但它給我的錯誤,我練我的測試。
到目前爲止我的代碼是:顯示員工姓名誰擁有2L的,SQL查詢
select ename from emp where ename =ll%;
的問題是,顯示誰擁有2LS在他們的名字,並在部門30或他們的經理所有僱員的所有名稱是7782;
我想我的代碼,但它給我的錯誤,我練我的測試。
你想使用類似命令幷包夾你LL的W /%通配符:
select ename from emp where ename like '%ll%'
+1打我相同的答案。這裏是[鏈接](http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like)以獲取更多信息。 –
@JasonMcCreary,你得到編輯他的問題的榮譽,雖然... – Rikon
你的意思是「兩L'就像你好」,或「兩L'就像拉拉」?如果第二個,這可能工作:
SELECT
ename FROM emp
WHERE
ename LIKE '%l%l%'
AND
(department = 30 AND manager = 7782)
如果第一,改變LIKE
到%ll%
代替。
如果department
和manager
是CHAR/VARCHAR
而不是數字,則還需要單引號。
+1爲順序'l'的徹底。儘管'%'是通配符(匹配任何內容或不匹配),所以不需要將'%l%l'更改爲'%ll%''。除了代碼純度當然。 :) –
但第一個搜索結果會比兩個連續的'l'其他字符(如'lala'(不能拿出的作品
我知道。我唯一的觀點是這兩個例子在'%l%l'匹配的情況下並不相互排斥。這意味着它匹配* hello *和* lala *。而'%ll%'只匹配* hello *。我們說的是同樣的事情,我只是從另一邊進來:) –
SELECT ename
FROM emp
WHERE (ename LIKE '%l%l%'
OR ename LIKE '%ll%')
AND (department = 30 AND manager = 7782) ;
SELECT ENAME FROM EMP
WHERE INSTR(ENAME, 'L',1,2)> 1和部門= 30和管理器7782 =
Select * from emp
Where instr(ename, 'l', 2, 2)>1 and
(Department=30 or manager=7782);
在這裏,在INSTR函數我從第二個位置開始搜索以使其高效。否。出現的次數將是2,因爲他的查詢都是關於第二'l'的。
學習如何谷歌,如果你不打算在課堂上聽。 – Justin
@Justin,有點苛刻的朋友。這是無法迎接新用戶的方式。即使他們的問題涉及*作業*。顯然他們確實嘗試了一些東西。幫助他們或轉移到下一個問題。旁註是不必要的。 –
@Jason,理解你的pov,但我認爲只有rohit試過的東西是在這裏發佈問題。我全力幫助別人,但僅僅知道通配符是什麼,可能是他的考驗,在這種情況下,給他答案對他來說無助。 – Justin