Perhaps the opposite is LIKE% ...%?

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   ้“…
+4
source share
3 answers

What about

WHERE `simplified` = SUBSTRING(
  '้“…็ฌ”็š„ๅކๅฒ้žๅธธๆ‚ ไน…๏ผŒๅฎƒ่ตทๆบไบŽ2000ๅคšๅนด',
  0, CHAR_LENGTH(`simplified`))

? Probably not indexable, but at least the request is short. :)

And you can optimize it by adding

AND `simplified` LIKE '้“…%'

reject all lines that at least do not start with the correct character.

+6
source

try like this:

SELECT * FROM `dictionary` WHERE simplified like '้“…%'
+1
source

REGEXP .

0
source

Source: https://habr.com/ru/post/1532666/


All Articles