BLOBs can't "reliably" be used in GROUP BY or ORDER BY
or DISTINCT. Only the first max_sort_length bytes (default
1024) are used when comparing BLOBbs in these cases. This can be
changed with the -O max_sort_length option to mysqld. A
workaround for most cases is to use a substring: SELECT DISTINCT
LEFT(blob,2048) FROM tbl_name.
BIGINT or DOUBLE (both are
normally 64 bits long). It depends on the function which precision one
gets. The general rule is that bit functions are done with BIGINT
precision, IF, and ELT() with BIGINT or DOUBLE
precision and the rest with DOUBLE precision. One should try to
avoid using bigger unsigned long long values than 63 bits
(9223372036854775807) for anything else than bit fields!
BLOB and TEXT columns, automatically
have all trailing spaces removed when retrieved. For CHAR types this
is okay, and may be regarded as a feature according to ANSI SQL92. The bug is
that VARCHAR columns are treated the same way.
ENUM and SET columns in one table.
UPDATE that updates a key with a WHERE on the same key may
fail because the key is used to search for records and will be found
multiple times:
UPDATE SET KEY=KEY+1 WHERE KEY > 100;This will be fixed in newer MySQL versions by not using keys that contain fields that are going to be updated. Until this fixed you can use the current workaround:
mysql> UPDATE SET KEY=KEY+1 WHERE KEY+0 > 100;This will work because MySQL will not use index on expressions in the
WHERE clause.
safe_mysqld re-directs all messages from mysqld to the
mysqld log. One problem with this is that if you execute
mysqladmin refresh to close and reopen the log,
stdout and stderr are still redirected to the old log.
If you use --log extensively, you should edit safe_mysqld to
log to `'hostname'.err' instead of `'hostname'.log' so you can
easily reclaim the space for the old log by deleting the old one and
executing mysqladmin refresh.
For platform-specific bugs, see the sections about compiling and porting.
Go to the first, previous, next, last section, table of contents.