2013-07-05 67 views
3

如何查找MySQL中另一個字符串(列)中字符串的第一個位置,不區分大小寫?MySQL中的stripos相當於

我希望能夠根據這個返回的數字進行排序 - 字符串位置。

回答

5

您可以使用INSTR(str,substr)

返回字符串strsubstr中第一次出現的位置。這與LOCATE()的雙參數形式相同,只是參數的順序相反。

SELECT INSTR('foobarbar', 'bar'); 
    -> 4 
SELECT INSTR('xbar', 'foobar'); 
    -> 0 
+2

感謝這樣一個快速和詳細的答案。 – silkfire

3

結賬INSTR。它應該讓你這樣做。

+0

謝謝,正是我一直在尋找的。現在誰來接受? :) – silkfire

+0

@silkfire如果答案几乎相同,我通常會和第一個人或最詳細的人一起去。 –

+1

@DannyBeckett好吧,因爲我非常喜歡英國人:)你走了。每個人都有3個讚賞,夠公平嗎? – silkfire

3

嘗試使用上整理Locate()

SELECT LOCATE('bar', 'fooBARBAR'); // return 4 

此外,MySQL的比較基礎。例如。

SET NAMES 'binary'; 
SELECT LOCATE('bar', 'fooBARBAR'); // return 0 

請記住它。

另外,請閱讀Case Sensitivity in String Searches

+1

古怪,它與'INSTR()'的功能相同,但是參數相反。我喜歡首先有列名,但是,更合乎邏輯的方式。 – silkfire

+0

@silkfire,請閱讀上面的鏈接:) – sectus