Question

J'ai une base de données avec 1 colonne qui a des champs de texte.J'ai besoin de trouver et de monter une nouvelle colonne avec une sous-chaîne.Mon anglais n'est pas bon, donc je vais essayer de l'expliquer ci-dessous.

Exemple de 1 terrain:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Ut wisi enim ad minim veniam, quis nostrud exerci tation moderne suscipit lobortis nisl ut aliquip ex ea commodo consequat.Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis à XXXX :yyyyy vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis feugait nulla facilisi.Nam liber tempor cum soluta nobis eleifend aiguille option congue nihil imperdiet doming id quod caresse placerat facer possim assum.Typi non habent claritatem insitam;hne usus legentis in iis qui facit eorum claritatem.Investigationes demonstraverunt lectores legere me liu quod ii legunt saepius.Claritas hne etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum.Mirum hne notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima.Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.

J'ai besoin de trouver et d'extraire la valeur de yyyyy qui vient après xxxx :, et la position de la variable dans le texte.Jusqu'à présent, j'ai essayé ceci:

SELECT 
 SUBSTRING_INDEX(
 RIGHT(description, 
 GREATEST(LOCATE('xxxx :', description),
 LOCATE('xxxx :', description))-1), ' ', -1)
FROM wwwww

Je sais que ça peut être le moyen de le résoudre, mais je ne peux pas faire cela fonctionne.(J'ai regardé ça déjà: De retour de texte spécifiques de MySQL à l'aide de LOCALISER et de sous-CHAÎNE)

PS:Le "XXXX :" c'est toujours la même chose...le yyyyy a la valeur d'une variable

Était-ce utile?

La solution

s'il vous plaît essayer cette

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description,'XXXX : ',-1),' ',1) from wwwww

voici l' sqlFiddle

je ne sais pas pourquoi il ne fonctionne pas pour vous peut-être essayer cette variation de voir si cela fonctionne

SELECT SUBSTRING_INDEX(RIGHT(post_content,LENGTH(post_content) - (LOCATE('XXXX : ',post_content)+6)),' ',1) as var from wp_posts

Autres conseils

Pour trouver le premier mot (ou une chaîne) qui suit xxxx : (éventuellement avec et sans espaces autour : dans un bloc de texte à l'aide de PHP et de la regex:

$subject = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, vel illum dolore eu feugiat nulla facilisis at XXXX : yyyyy vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.";

# Case insensitive match.
$pattern = '/XXXX\s?:\s?(\w+)/i';

# If `XXXX` really has to be all caps, remove the `i` flag, like so:
#$pattern = '/XXXX\s?:\s?(\w+)/';

preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches[1]);

$matched_text = $matches[1][0];
echo $matched_text;

$match_position = $matches[1][1];
echo $match_position;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top