Android 按排序顺序存储传入消息(根据传入编号)

Android 按排序顺序存储传入消息(根据传入编号),android,database,database-design,Android,Database,Database Design,我正在设计一个应用程序,我将传入的消息存储在我自己创建的数据库中,并从该数据库将这些消息显示在我的应用程序中。 为此,我使用此代码, 要插入数据 mydb = openOrCreateDatabase("db",MODE_PRIVATE, null); mydb.execSQL("CREATE TABLE IF NOT EXISTS sms_inbox (SMS_TEXT varchar , SENDER_NUMBER

我正在设计一个应用程序,我将传入的消息存储在我自己创建的数据库中,并从该数据库将这些消息显示在我的应用程序中。 为此,我使用此代码, 要插入数据

mydb =  openOrCreateDatabase("db",MODE_PRIVATE, null);                              
        mydb.execSQL("CREATE TABLE IF NOT EXISTS sms_inbox (SMS_TEXT varchar , SENDER_NUMBER varchar );");      

        mydb.execSQL("INSERT INTO sms_inbox VALUES('" + stBody + "', '" + stPhoneNumber + "');");
Cursor c = mydb.rawQuery("SELECT * from sms_inbox", null);
要读取数据

mydb =  openOrCreateDatabase("db",MODE_PRIVATE, null);                              
        mydb.execSQL("CREATE TABLE IF NOT EXISTS sms_inbox (SMS_TEXT varchar , SENDER_NUMBER varchar );");      

        mydb.execSQL("INSERT INTO sms_inbox VALUES('" + stBody + "', '" + stPhoneNumber + "');");
Cursor c = mydb.rawQuery("SELECT * from sms_inbox", null);
然后我显示这些信息

所以现在我的问题是我想根据电话号码储存这些信息, 例如

电话号码-12345 “此处将显示12345的所有消息” 电话:23456
“23456的所有消息都将显示在这里”

好吧,您可以将这些消息作为另一个条目存储在
sms\u inbox
表中,但存储时间戳也有助于区分每条消息

当您查询时,您可以将电话号码作为您感兴趣的电话号码进行传递:
SELECT*from sms\u inbox,其中“SENDER\u number”=“?”

或者您可以按发件人号码选择订单:
select*from sms\u inbox order by'SENDER\u NUMBER'desc


最后,这完全取决于您拥有的用例。您也可以使用另一个表来仅保留某个号码的消息,并映射一对多关系。

在选择查询中使用order by?但有一个问题,即根据您的建议,在使用“发件人号码”=“?”的sms_收件箱中的select*时,我必须给出实际的号码。但我想给出一个变量,而不是这个。我知道这是因为保存到数据库中的数据将包含实际的no而不是变量…但我想解决这个问题…我不明白你的意思。。。无法替换查询中的变量吗?比如:“where'sender\u number'=\'”+myObj.getValue()+“\'”?明白了,这是同一个问题,现在我的问题已经解决了,实际上我不知道sql查询意味着如何编写它们,但它有很多问题。不客气。。。请非常小心SQL注入。你需要回避你的疑问。在谷歌上快速搜索一下,你就会明白这一点。