Home >Database >Mysql Tutorial >How to Simulate PHP's explode() Function in MySQL to Split Strings?
Split string in MySQL
There is no built-in function in MySQL similar to the PHP explode() function to split strings. However, with a little ingenuity, a similar effect can be achieved.
Create a custom explode function
To create a custom explode function, you can use the following syntax:
<code class="language-sql">CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT) RETURNS VARCHAR(255) RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos), CHAR_LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1), delim, '');</code>
This function accepts three parameters: the string to split (str), the delimiter (delim), and the number of occurrences to return (pos).
Usage
To use a custom explode function, call it like this:
<code class="language-sql">SELECT SPLIT_STRING('apple, pear, melon', ',', 1);</code>
This query will return "apple" as the first occurrence of a comma separated string.
Example use case
In your specific use case, you want to search for sports results that are the same but in reverse order in different database records. You can use a custom explode function to split the fraction into individual numbers and compare:
<code class="language-sql">WHERE opponent1.date = opponent2.date AND SPLIT_STRING(opponent1.score, '-', 1) = SPLIT_STRING(opponent2.score, '-', 2) AND SPLIT_STRING(opponent1.score, '-', 2) = SPLIT_STRING(opponent2.score, '-', 1)</code>
This query will return match records with the same score but in reverse order.
The above is the detailed content of How to Simulate PHP's explode() Function in MySQL to Split Strings?. For more information, please follow other related articles on the PHP Chinese website!