快速mysql php问题。
我有一个$row['sentence']
和另一个$row['rank']
我试着写一个东西......如果你发现...... $row['sentence']
中的某些单词......我用指定的任何内容插入或更新$row['rank']
。
离。这句话有坏话..
因此rank row
..将成为1
。
EX2。这句话很干净
因此rank row
将成为5
谢谢..如果我困惑了.. ..我将尝试另一种方式......
答案 0 :(得分:1)
您可以创建一个包含每个坏词的表作为记录,然后解析它以创建更大的sql语句。通过这种方式,您可以添加到坏词列表中,无论它们来自数据库,都不必为每个类似子句手动输入每个词。
例如:
$some_array = array(<list of bad words retrieved from db>);
$query = "update mytable set rank = 1 where ";
foreach ($some_array as $item) {
$query .= "sentence like '%$item%'and ";
}
//remove last "and" from end of $query string
echo $query;
因此它会生成一个类似于nickf提供的sql语句,但会列出所有不良单词的长列表。
update mytable set rank = 1 where sentence like '%bad word%' and sentence like ...
也没有效率,但它应该在某种程度上完成你所需要的。
答案 1 :(得分:0)
试试这个:
UPDATE myTable SET rank = 1 WHERE sentence LIKE "%bad words%";
UPDATE myTable SET rank = 5 WHERE sentence NOT LIKE "%bad words%";
显然有点过于简单,甚至效率都不高 - 将所有内容设置为排名更快 - 5然后更改回你需要的内容。无论如何,我希望你就是这样。