sql >> Database >  >> RDS >> Mysql

hoe de overeenkomende zoekwoorden tellen met select in mysql codeigniter php?

Aan de php-kant zijn er veel opties om de zoekwoorden in je array te tellen. Als u extra functionaliteit nodig heeft, zoals zoeken zonder hoofdletters of woordgrenzen hoe zit het met het gebruik van regex .

Een idee met preg_match_all

$pattern = '~(?:yes|test)~i';

foreach($arr AS $k => $v)
  $arr[$k]['match'] = preg_match_all($pattern, $v['title']." ".$v['msg']);

Het patroon is gewoon een afwisseling van de twee zoekwoorden met behulp van een niet-capturing-groep . Na de afsluitende patroonscheidingsteken ~ gebruikte de i vlag voor caseless matching. Regex101 is een leuke plek om het patroon te testen.

Hier is een demo op eval.in

Als de invoer generiek is, gebruik dan preg_quote om bepaalde tekens uit de speciale regex-betekenis te laten ontsnappen.




  1. Foreign Key met meerdere kolommen:stel één kolom in op Null ON DELETE in plaats van alles

  2. Is een enkele SQL Server-instructie atomair en consistent?

  3. Gegevens invoegen met behulp van een multidimensionale array uit meerdere velden

  4. Hoe kan ik vergelijkbare rijen SELECTEREN in twee verschillende tabellen in MySQL (is dat mogelijk?)