先に結論
MySQLでDBのカラムの値を使って部分一致検索をするやり方
コツは、
- concat関数を使って、
%(カラムの値)%
という文字列を作る - カラムの値が NULL or 空文字だった場合は、検索しないようにする
例
テーブル定義
create table user
(
id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(256) NOT NULL UNIQUE,
public_profile VARCHAR(256)
)
クエリ
select id
from user u
where u.public_profile like concat('%', u.name, '%')
and ifnull(length(u.name), 0) > 0;