mysql调用问题,PHP调用首、尾匹配及中间匹配中文字符的数据

数据库中有一字段chengyu,字段内容均为成语名字
PHP怎样调取首、尾及中间包含中文“百”字的成语。
分开调取:
1、字段中首字匹配的成语,如:百步穿杨...
2、字段中尾字匹配的成语,如:以一敌百...
3、字段中间匹配的成语,如:一了百了...

select chengyu from tablename where chengyu like '%百%'

会取出前两个执行数据集的总和。

PHP 也可通过正则表达匹配 ,然后放入不同的数组

preg_match('/^百(.)+$/', $chengyu, $matches);
preg_match('/^(.)+百$/', $chengyu, $matches);
preg_match('/^(.)+百(.)+$/', $chengyu, $matches);
select chengyu from tablename where chengyu like '百%'
select chengyu from tablename where chengyu like '%百'
select chengyu from tablename where chengyu like '%百%'