2017-05-31 37 views
0

This is my db.多個子

的全文字段包含HTML標籤和一些資源,我想所有的「SRC」從屬性。有些記錄可能有幾個'src'。

現在,我不知道如何寫一個查詢來獲得所需的結果。 ,這是我的代碼

DROP FUNCTION IF EXISTS SPLIT_STR; 
CREATE FUNCTION SPLIT_STR(
    x text, 
    delim VARCHAR(10), 
    co INT 
) 
RETURNS VARCHAR(255) DETERMINISTIC 
BEGIN 
    WHILE co >= 0 DO 
     SET x = RIGHT(x, ((CHAR_LENGTH(x)) - (InStr(x,'src')) + 1)); 
     RETURN SUBSTR(x, 1, 40); 
    END WHILE; 
END 

#--------------------------------------------------- 
SELECT id, SPLIT_STR(test.fulltext, 'src',ROUND ( 
    (
     LENGTH(test.fulltext) 
     - LENGTH(REPLACE (test.fulltext, "src", "")) 
    )/LENGTH("src")   
)) 
FROM test 
WHERE test.fulltext LIKE '%src%' 

,結果應該是這樣的 result

+1

不要保存CSV在列http://stackoverflow.com/questions/41304945/best-type-of-indexing-when-there-is-like-clause/41305027#41305027 http://stackoverflow.com/questions/41215624/sql-table-with-list-entry-vs-sql-table-with-a-for-each-entry/41215681#41215681 – e4c5

回答

0

功能ExtractValue在MySQL中使用XML的。所以,你可以使用這個:

SELECT ExtractValue(test.fulltext, '//img/@src') 
FROM test 
WHERE test.fulltext LIKE '%src%' 
+0

儘管可能會起作用,它是否按照該人的要求做?如果傳入的字符串有5個「src」值,他們需要每個值,而不僅僅是提取可能嵌入的單個實例? – DRapp

+0

@DRapp是的,它會返回一個字符串,其中包含所有由空格分隔的「src」屬性。但是這個例子比作者的建議更好。它不需要使用任何自定義函數,並且爲實例分割它只需要'SPLIT_STR' – Timur