Automatický trim u porovnávání řetězců rubrika: Databáze: SQL

5 Andreaw Fean
položil/-a 1.8. 12:22

Ahoj.

Mám následující SQL:

SELECT *
FROM t
WHERE x = 'lorem ipsum:'

A ono mi to vyhledá i x = 'lorem ipsum: ', tedy s mezerou na konci. Prostě to ořízne. Jakto? Nevíte co s tím?

Databáze MySQL (10.1.18-MariaDB)

Komentáře

  • podhy : použít postgres kterej to u varchar nedělá :-) ale to si asi nechtěl slyšet :-) 1.8. 19:47
odkaz Vyřešeno
8 integer
odpověděl/-a 1.8. 13:07
 
upravil/-a 1.8. 13:09

Je to vlastnost. Nedávno na tohle téma upozorňoval zdroják na svém twitteru. https://twitter.com/zdrojak/status/1023539017487474689 Najdeš tam spoustu rad a tipů: https://twitter.com/i/moments/1023587883607908353

Komentáře

  • Andreaw Fean : Aha. Tak to je blbý. Nedá se to nějak vypnout? Protože mě napadá jenom to, přidávat si tam na začátek a konec nějaký speciální znak. 1.8. 15:49
  • Taco : Leda změnit typ na BLOB. 1.8. 16:02
  • Taco : Je ta vlastnost něčím odůvodněná, nebo se to prostě stalo? 3.8. 12:38
  • Andreaw Fean : Taky by mě zajímalo. 5.8. 11:52
  • tomasgrosup : A nestačí si tam přidat podmínku na délku řetězce? Přidat AND length(x) = ... z aplikačního kodu 9.8. 22:29
  • Kit : @tomasgrosup: Stačí jen lehounce přetypovat: WHERE x = BINARY 'lorem ipsum:' 9.8. 22:32

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.