2016-09-18 30 views
0

我們有一個表,其中包含card_no信息。包含數據,如:mysql查詢:在字符串位置搜索

----------------------------------------- 
| id [int(11)] | card_no [varchar(16)] | 
----------------------------------------- 
| 1   | 0124578965874563  | 
| 2   | 1245789658478596  | 
| 3   | 8471452369587458  | 
----------------------------------------- 

現在,我們需要一個查詢發現卡號碼包含在位置。或者其中包含 第2位置。

這實際上是我們打印卡號時發現一些數字不可讀的情況。所以我們需要用剩下的數字來識別卡片。例如,我們有如下數據:

1245_896584_8596 

現在我們需要用這些數據識別卡。 在此先感謝。

回答

1

您可以使用功能SUBSTRING

SELECT id, card_no 
FROM mytable 
WHERE SUBSTRING(card_no, 6, 1) = '7' OR SUBSTRING(card_no, 2, 1) = '4' 

Demo here

+0

謝謝。此解決方案看起來不錯除了我需要*和*條件。 – Chayan

+1

@Chayan - 但你的解釋說*其中包含7在第六位。 **或**,其中包含4位在第二位。* –

1

使用SUBSTR字符串函數

SELECT * 
FROM yourtable 
WHERE SUBSTR(card_no,2,1) = 4 
    OR SUBSTR(card_no,6,1) = 7 
0

使用像在where子句和通配符整整一個符號_ 喜歡的東西

select * from table where card_no like '_____7℅'