Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从MYSQL中的特定表中选择数据_Java_Mysql_Sql - Fatal编程技术网

Java 从MYSQL中的特定表中选择数据

Java 从MYSQL中的特定表中选择数据,java,mysql,sql,Java,Mysql,Sql,我有一个项目模式,其中包含一个student_记录表,属性为firstname、middlename和lastname。 现在使用java,我想在我的jTable中显示学生列表,例如,姓氏以A开头。结果将在我按下一个键后自动显示。但我认为我的代码并不完全正确 -----这是我打字时的文本字段 private void searchKeyReleased(java.awt.event.KeyEvent evt) {

我有一个项目模式,其中包含一个student_记录表,属性为firstname、middlename和lastname。 现在使用java,我想在我的jTable中显示学生列表,例如,姓氏以A开头。结果将在我按下一个键后自动显示。但我认为我的代码并不完全正确


-----这是我打字时的文本字段

 private void searchKeyReleased(java.awt.event.KeyEvent evt) {                                   
    // TODO add your handling code here:
            Thread e = new Thread() {
        public void run() {
            while (true) {
                try {
                    Thread.sleep(1000);
                    search();

                } catch (Exception e) {
                }
            }
        }
    };
    {
    }

    e.start();
}           

如果“搜索”通常是姓氏的第一个字母,则通配符(%)应仅位于LIKE子句的末尾,而不是开头。如果您将其保留在开头,我为搜索词键入字母“M”,那么它将返回所有在第一个字符位置或字符串中任何其他位置包含M的结果

SELECT * FROM student_record WHERE lastname LIKE 'search%'"

以上要求用户的搜索词位于字符串开头,并与lastname字段中的任何后续字符相匹配。

“我认为我的代码不完全正确。”到底是什么问题?哦,它们不是……至少你是正确的。这可能不是主要问题,但是我注意到你说的是
WHERE lastname,比如“%search”
我认为如果你在末尾添加了通配符,或者在
比如
子句的每一端保留一个通配符,你会得到更好的搜索结果。例如,
SELECT*FROM student\u记录,其中lastname像“%search%”“
search”是文本字段的变量名,我应该在其中键入任何字母。我是否将其放在那里了???“search”是文本字段的变量名,我应该在其中键入任何字母。,我把它放在那里是对的吗???@InformationTechnology如果lastname在MySQL中被索引,并且您使用像“%search%”这样的方法,MySQL仍将使用完整的表扫描来查找记录。。如果您像'search%'一样使用,MySQL可以并且将使用索引,如果lastname上有索引,如果lastname上没有索引,则仍然需要一个完整的表。这是因为使用'%search%'意味着如果search=“m”,它将匹配诸如“Manson”或“Flame”之类的结果,因为m。这需要全文搜索,但不允许第一个字符变为变量,允许引擎利用索引。我再次遇到问题。我的STUDENT_记录上有2条记录,当我尝试查找以“SOME LETTER”开头的姓氏时,表列表上不会显示任何内容。所有的记录都将消失。我想我已经得到了正确的代码,只是什么都不会显示。每当我删除文本字段上的“SOMELETTER”时,所有记录都应该再次显示
SELECT * FROM student_record WHERE lastname LIKE 'search%'"