Wpis z mikrobloga

#pytaniedoeksperta #python #sql #mysql

Hej, mam taki kod od jednego z uzytkownikow i chce go uzyc w mysql'u zeby porownac dwie kolumny.

def compare(a, b):

a = set(a.split())

b = set(b.split())

return '{0:.0f}%'.format(100.0*len(a.intersection(b))/len(a))

assert '100%' == compare('123 asd asd', 'asd 123')

assert '33%' == compare('a b c', 'c d e')

assert '0%' == compare('asd', 'xyz')

print compare('Leszek smieszkuje na mirko', 'na mirko Leszek smieszkuje')

Udalo mi sie napisac funkcje rozdzielajaca slowa, ale dalej nie wiem jak sie do tego zabrac, ktos mialby ochote pomoc? :)

Ponizej funkcja split:

CREATE FUNCTION SPLIT(

x VARCHAR(255),

y VARCHAR(12),

z INT

)

RETURNS VARCHAR(255)

RETURN REPLACE(SUBSTRING(SUBSTRINGINDEX(x, y, z),

LENGTH(SUBSTRING
INDEX(x, y, z -1)) + 1),

y, '');

x to dana kolumna, y to dowolny ogranicznik np spacja: ' ', z pozycja zwracanego wyrazu. Te funkcje tez pewnie trzeba by zmodyfikowac.

Z gory dzieki!
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach