Trying to do some cleanup in the database, per manager request. However, I can't seem to get Mysql to run the inner query as written.
select @tbl:=column_name as'Table',
( select max(length(@tbl))
from project) as 'used_length',
character_maximum_length as 'defined length'
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'project'
and column_name = 'announcement_notes'
group by column_name,
character_maximum_length
order by 1
Unfortunately, it's not running the max(length) query – it is returning the length of the label – in this case announcement_notes is 18 characters long.
Table used_length defined_length
----------------- ------------ ---------------
announcement_notes 18 2000
[if that wasn't clear – the return from the query is announcement_notes, 18, 2000).
however, checking the actual length
select max(length(announcement_notes)) from project
returns 404 characters.
Any help would be greatly appreciated.
Best Answer
Prepared Statement is the answer for this.
For getting @tbl used properly,
will get it. But to select required columns from information_schema, you need to run a query first followed by coining this prepared statement and then execute the same.