sql >> Database >  >> RDS >> Mysql

Spammers detecteren met MySQL

Volledige tekstovereenkomst

Je zou kunnen kijken naar het implementeren van iets dat lijkt op de MATCH voorbeeld hier :

mysql> SELECT id, body, MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root') AS score
    -> FROM articles WHERE MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root');
+----+-------------------------------------+-----------------+
| id | body                                | score           |
+----+-------------------------------------+-----------------+
|  4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
|  6 | When configured properly, MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+
2 rows in set (0.00 sec)

Dus voor jouw voorbeeld misschien:

SELECT id, MATCH (content) AGAINST ('your string') AS score
FROM messages 
WHERE MATCH (content) AGAINST ('your string')
    AND score > 1;

Houd er rekening mee dat om deze functies te gebruiken uw content kolom moet een FULLTEXT . zijn index.

Wat is score in dit voorbeeld?

Het is een relevance value . Het wordt berekend via het hieronder beschreven proces:

Uit de documentatie pagina.




  1. SQLite UNION-operator

  2. Hoe de procedure aan te roepen in Kohana 3.1

  3. Nadelen van het opslaan van afbeeldingen in een database?

  4. Hoe karakter_set_database en collation_database in te stellen op utf8 in my.ini?