我現在有數千條記錄,我正在從網站上抓取網頁,名字只有名字或名字,目前為:Souleymane Doukara 85 Souza 25 Souza 59 Stefano Okaka 16 Tayfur Bingol 53 Tayfur Bingol 67 Y. Sari 90 Younes Belhanda 46
我在mysql中有表記錄:
桌子:
| 記分員 |
|---|
| 厄齊爾 50 |
| M.厄齊爾 40 |
| M.厄齊爾 46 |
| 厄齊爾 31 |
| 厄齊爾 30 |
我寫了下面的查詢,我也得到了下面的結果:
select
SUBSTRING(TRIM(SUBSTRING_INDEX(`scorera`, ' ', 1)), 1) AS 'Player',
SUBSTRING(TRIM(SUBSTRING_INDEX(`scorera`, ' ', -1)), 1) AS 'Goal Minute'
from goals;
| 播放器 | 進球分鐘 |
|---|---|
| 厄齊爾 50 | 50 |
| M.厄齊爾 40 | 40 |
| M.厄齊爾 46 | 46 |
| 厄齊爾 31 | 31 |
| 厄齊爾 30 | 30 |
如果我再使用一個空白的第一個子字串行,如圖所示 *
select
SUBSTRING(TRIM(SUBSTRING_INDEX(`scorera`, ' * ', 1)), 1) AS 'Player',
SUBSTRING(TRIM(SUBSTRING_INDEX(`scorera`, ' ', -1)), 1) AS 'Goal Minute'
from goals;
我得到以下結果,因為玩家只有名字:
| 播放器 | 進球分鐘 |
|---|---|
| M。 | 50 |
| M。 | 40 |
| M。 | 46 |
| M。 | 31 |
| M。 | 30 |
當玩家有如下名字或名字和第二個名字時,我怎樣才能得到正確的名字?
| 播放器 | 進球分鐘 |
|---|---|
| M·厄齊爾 | 50 |
| M·厄齊爾 | 40 |
| M·厄齊爾 | 46 |
| M·厄齊爾 | 31 |
| M·厄齊爾 | 30 |
謝謝你的幫助。
名稱僅出現first name或first and second name當前為:
Souleymane Doukara 85
Souza 25
Souza 59
Stefano Okaka 16
Tayfur Bingol 53
Tayfur Bingol 67
Y. Sari 90
Younes Belhanda 46
uj5u.com熱心網友回復:
如果您希望第一個數字之前的部分作為玩家名稱,那么這應該可以:
select RTRIM(LEFT(scorera, (REGEXP_INSTR(scorera, '[0-9]')-1))) AS `Player`,
SUBSTRING(TRIM(SUBSTRING_INDEX(`scorera`, ' ', -1)), 1) AS `Goal Minute`
from goals;
小提琴
請注意,在將資料插入表之前,應先對資料執行此操作,否則使用表中的資料將是痛苦和低效的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/444076.html
上一篇:左聯接顯示聯接表中的多個值
