【commentTbl】
no ・・・連番。オートインクリメント
title ・・・件名。文字列型(varchar)
message ・・・メッセージ。文字列型(text)
sta ・・・状態。1は表示。0は非表示
上記のようなコメントを管理するテーブルにて、messageに3つ以上url(http://・・・)を含んでいる書き込みは、
ほぼスパムなので、これのstaを0にするSQL文を書くにはどうすればよいでしょうか?
ご教授よろしくお願いいたします。
使用SQL【MySQL5】
UPDATE
sta = 0
WHERE
LENGTH(REPLACE(message,'http://'.'')) + LENGTH('http://')*2 < LENGTH(message)
未確認ですが こんな感じにすればいいかと思います。
まず、messageに含まれている 'http://'を 無くします。
そうすると 当然 文字数が 短くなります。
'http://'の2つ分よりも 短くなれば 'http://'が 3つ以上あることになります。
このとき staを 0にします。
ご回答ありがとうございます。
最初うまくできませんでしたが、「message,'http://'.''」のドットをカンマに変えたら無事に動きました。
こういう方法もあるんですね!
勉強になりました。ありがとうございます。