Vous avez besoin d'une fonction pour cela:
DROP FUNCTION IF EXISTS STRIP_NON_DIGIT;
DELIMITER $$
CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
DECLARE output VARCHAR(255) DEFAULT '';
DECLARE iterator INT DEFAULT 1;
WHILE iterator < (LENGTH(input) + 1) DO
IF SUBSTRING(input, iterator, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') THEN
SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
END IF;
SET iterator = iterator + 1;
END WHILE;
RETURN output;
END
$$
DELIMITER ;
mysql> SELECT STRIP_NON_DIGIT('Some more(user) found = 50') AS n;
+------+
| n |
+------+
| 50 |
+------+
1 row in set (0.00 sec)
D'abord, '\ d' n'est pas supporté dans MySQL REGEXP. Deuxièmement, vous ne pouvez pas utiliser REGEXP pour récupérer des parties d'entrées, il vérifie seulement si une entrée contient un motif. –
Si vous pouvez nous montrer plus de données, il y a peut-être une autre solution. –
J'ai un texte comme celui montré dans l'exemple. Je me demandais s'il y avait un moyen d'extraire les chiffres du texte et de les traiter comme des nombres. – Sudheer