• Home
  • About Jon Dowdle
  • Lifestream
KEEP IN TOUCH

Posts tagged MySql

Finding international characters with MySQL

Aug19
2009
Written by Jon Dowdle

I recently had to find the rows in a database that contained any multibyte characters. My first thought was to leverage the difference between length() and char_length(). The query would be similiar to this:

Select pKey, dataCol
From myTable
Where length(dataCol) != char_length(dataCol)

To my surprise this query didn't work. After mulling it over in my mind, I tried a few debugging statements such as:

Select pKey,
  dataCol,
  length(dataCol),
  char_length(dataCol)
From myTable

That only reaffirmed that all return values of the char_length() were equal to the length() results.

Then it hit me, I (or rather the database) was using the latin1 character set. So I quickly cast the data into utf8 and it worked! Below is the resulting query.

Select pKey, dataCol
From myTable
Where length( cast(dataCol using utf8) ) !=
        char_length( cast(dataCol using utf8) )
Posted in MySQL - Tagged sql

MySQL Concat() and Mixed Types

Feb05
2009
Written by Jon Dowdle

While in the process of upgrading our connector/J to version 5.1 we started seeing the following error:

ComplexByteArrayException: ByteArray objects cannot be converted to strings.

After doing a little homework we found that the root cause was in the way that CONCAT() processed numbers. CONCAT() was returning a binary string due to having both numbers and strings as arguments.

Our fix was to CAST() all numbers to CHAR, which results in a normal string being returned. Another option is to call toString() on all of your affected columns when referencing them in the query object.

For example the SQL fix is demonstrated below:

Select Concat('a string', 1)

would return a binary string where as

Select Concat('a string', Cast(1 as char))

would return a "normal" string.

Resources:

  1. http://bugs.mysql.com/bug.php?id=7739
  2. http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat
  3. http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date
  4. http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format
Posted in Code, coldfusion - Tagged coldfusion, ComplexByteArrayException, concat

Recent Posts

  • Code from TDD Demystified through Katas
  • Awesome Web Development Links Found This Week
  • Taggable Demo Video (now with more code)
  • Taggable Demo Video
  • New jQuery Plugin: Taggable

Categories

  • Code
    • MySQL
    • Programming
    • Web Design
  • coldfusion
  • Life
    • Events
  • Reviews
  • Uncategorized
  • Work

Tags

adobe barcamp barcamporlando coldfusion ComplexByteArrayException concat conferences decorator design pattern Events firebug Form fowa html IE ignite infection control iterator javascript job jQuery movies MySql orlando Photos pirate booty pirates plugins poll project python railo software development sql stackoverflow stax.net style taggable tags talk like a pirate tips & tricks tools twitter washington dc Web Design

RSS Syndication

  • All posts
  • All comments

EvoLve theme by Theme4Press  •  Powered by WordPress jDowdle.com