In short, I want the vocabulary to match a line of text, but it should not match the entire line, only at the beginning. So this is actually a kind of reverse LIKE% ...%
For instance,
SELECT * FROM `dictionary` WHERE
(`simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ2000ๅคๅนด'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ2000ๅค'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ2000'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ200'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ20'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ2'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบไบ'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตทๆบ'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ่ตท'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผๅฎ'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
๏ผ'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ ไน
'
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธๆ '
OR `simplified` = '้
็ฌ็ๅๅฒ้ๅธธ'
OR `simplified` = '้
็ฌ็ๅๅฒ้'
OR `simplified` = '้
็ฌ็ๅๅฒ'
OR `simplified` = '้
็ฌ็ๅ'
OR `simplified` = '้
็ฌ็'
OR `simplified` = '้
็ฌ'
OR `simplified` = '้
')
ORDER BY CHAR_LENGTH(`simplified`) DESC;
It works and does what I need, but I know that it is extremely inefficient. Is there any other way to do this? Many thanks!
Examples of results:
97576 ้
็ฌ
97484 ้
97566 ้
source
share