Výsledky 1 až 15 z 15

Téma: [mySQL] Porovnaní řetězců NE case senzitive

  1. #1

    Standardní [mySQL] Porovnaní řetězců NE case senzitive

    Chci v podmince where porovnat dva retezce, tak aby to nebylo case senzitive. Prikaz LIKE by to udajne mel zvladnout, ale nezvlada.

    Př.
    Kód:
    Select 'AbC' LIKE 'aBc';
    vrati 1 jako ze to je stejny,
    ale
    Kód:
    SELECT * FROM tabulka WHERE jmeno LIKE 'pepik'
    nevrati nic protoze v tabulce je 'Pepik'

    Nevite jak to vyresit?
    PS. verze mySQL je 4.1.14-nt
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  2. #2

    Standardní

    Co tak
    Kód:
    upper(jmeno) LIKE upper('pepik')
    ?

    [edit]
    Jinak me to s tim LIKE na 4.0.24 normalne case insensitive bezi

  3. #3

    Standardní

    uz jsem to zkousel driv
    upper(jmeno) LIKE upper('pepik') hlasi:
    Kód:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( jmeno ) LIKE upper ( 'pepik' )  LIMIT 0, 30' at line 1
    evidentne se mu ta funkce upper v podmince where nelibi

    asi zkusim starsi(?novejsi) verzi
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  4. #4

    Standardní

    Vsak upper('pepik') je PEPIK, tak to tam rovno napis.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  5. #5

    Standardní

    to asi nepude
    1) ve sloupci jmeno muzu mit Pepik nebo pepik nebo PEpIK....
    2) ten konstantni retezec je nacitanej z formulare => ze tam bude neco jako UPPER(jmeno) LIKE UPPER('$jmeno')

    Problem jsem se pouze snazil maximalne zjednodusit aby bylo naprosto jasne o co mi jde

    Ale diky.
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  6. #6

    Standardní

    Vsak konverziu na uppercase sprav v PHPcku (strtoupper).
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  7. #7

    Standardní

    Tomu se chci prave vyhnout.
    Podivej tady na foru ma kazdej nejake "specialni" jmeno, kde v kazdem miste zalezi na velikosti pismenka, takze mu ho nemuzete zmenit na VSECHNA VELKA.
    Kdyz to tady funguje, tak proc to nefunguje mne.
    Zvlast kdyz LIKE ma bejt case insenzitive, ale mne funguje jako Case Senzitive.

    Pozn. je to este veselejsi
    SELECT jmeno FROM tabulka WHERE jmeno LIKE "Kamil"
    - nefuguje - nezobrazi nic ale
    SELECT jmeno FROM tabulka WHERE jmeno = "Kamil"
    - funguje

    kde v DB je ulozeno 'Kamil'
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  8. #8
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Nie je to sice 100% koser, ale skus

    SELECT jmeno FROM tabulka WHERE jmeno LIKE '%Kamil%'
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  9. #9

    Standardní

    no koser to opravdu neni, ale zkusil jsem
    ano to funguje. dokonce staci %zepredu, ale furt to neni case insenzitive
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  10. #10
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Citace Původně odeslal MySQL manual
    A.5.1. Case Sensitivity in Searches
    By default, MySQL searches are not case sensitive (although there are some character sets that are never case insensitive, such as czech). This means that if you search with col_name LIKE 'a%', you get all column values that start with A or a. If you want to make this search case sensitive, make sure that one of the operands has a case sensitive or binary collation. For example, if you are comparing a column and a string that both have the latin1 character set, you can use the COLLATE operator to cause either operand to have the latin1_general_cs or latin1_bin collation. For example:

    col_name COLLATE latin1_general_cs LIKE 'a%'
    col_name LIKE 'a%' COLLATE latin1_general_cs
    col_name COLLATE latin1_bin LIKE 'a%'
    col_name LIKE 'a%' COLLATE latin1_bin
    Takze imho len to, co poradil Jedik ...
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  11. #11

    Standardní

    Skvele konecne dobra zprava i kdyz to tak nevypada.
    Kdyz se vzdam hacku a carek tak to funguje. Musel jsem nastavit, ze ten sloupecek je v ASCI a LIKE jede v poho.
    Clovek ma tedy na vyber bud PiSmeNa nebo háčky.
    Diky moc. Ja sem to v tej dokumentaci mysql nenasel.
    Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.

  12. #12
    Terorista karabínový mince Avatar uživatele PiT
    Založen
    13.09.2002
    Bydliště
    Bratislava
    Příspěvky
    4 550
    Vliv
    300

    Standardní

    Tak vkladaj do databazy tie znaky ako & a podobne
    And down we go again, under the relentless wawes, into the arms of calm breakers, into bayou of forgotten dreams
    Like sand slipping through my fingers, nothing ever lasts, ever will

  13. #13

    Standardní

    Citace Původně odeslal PiT
    Tak vkladaj do databazy tie znaky ako & a podobne
    & ti pak myslq spravne nesortne ...
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  14. #14

    Standardní

    A nefunguje to spravne s diakritikou ked sa nastavi spravne charset databazy?
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  15. #15

    Standardní

    nevim jak s jinym kodovanim, to si muze kazdej vyzkouset, ale minimalne s utf8 to vali v pohode:
    Kód:
    mysql> create table forum (
        ->     id INT AUTO_INCREMENT,
        ->     jmeno VARCHAR(50),
        ->     PRIMARY KEY (id)
        -> ) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
    
    mysql> insert into forum (jmeno) values
        -> ('Franta'),('PepIk'),('kamil');
    
    mysql> select * from forum where jmeno like 'pepik';
    +----+-------+
    | id | jmeno |
    +----+-------+
    |  2 | PepIk |
    +----+-------+
    1 row in set (0.00 sec)
    1) ASUS M6A
    2) Toshiba Portége R600-10U
    3) ASUS A8V-X AMD Athlon 64 3000+ Kingmax 2x256MB DDR 400 WD 120GB Samsung 80 GB GMC G30 Fortron FSP400-60THN-P
    Ideální indentace pro Pascal je šest stop pod zem.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •