erroneousBollock hit it with the "COLLATE" option on the query, though for your purposes, a query like this would probably do best:
"SELECT rec,id from memrecs where rec collate latin1_bin rlike '[A-Z]' +" );
Then again, MySQL does provide exactly what you need -- the "LOWER" function -- so you can skip the initial query and just do the update:
$dbh->do( "UPDATE memrec set rec=LOWER(rec)" );
Or, you could just apply the LOWER() function whenever you query the table to get "rec" values (SELECT LOWER(rec) ...) and not worry about whether or not there are capital letters in that column of the database.

A few other points you should know:

if ( $_rec =~ /A .. Z/) { $_rec =~ tr/A-Z/a-z/g; ... }
That's the wrong way to check for upper case letters -- you would want  $_rec =~ /[A-Z]/ instead. Also, the "g" modifier does not apply to the tr/// operator (study the section about tr/// in perlop for details on its modifiers).

But the regex match is unnecessary anyway. The two steps can be simplified to just this:

if ( $_rec =~ tr/A-Z/a-z/ ) { # tr/// returns the number of characters converted # so we get here only if there had been at least one A-Z }

In reply to Re: Checking MySql for capital letters by graff
in thread Checking MySql for capital letters by ukndoit

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.